Segmented Control for Android and iOS
npm install segmentedcontrol#Works on Android and IOS in React Native
A wrapper for SegmentedControlIOS so all props work the same.
For Android all props work except disabled seems to require
a re-render and momentary hasn't been programmed.
####If you would like to use Android style tabs in iOS, use the 'override' prop.
##PropTypes and Default Prop Types for Android
####JUST Android. iOS is unaffected.
``javascript
SegmentedControl.propTypes = {
values: React.PropTypes.arrayOf(React.PropTypes.string).isRequired
, tintColor: React.PropTypes.string
, enabled: React.PropTypes.bool
, onChange: React.PropTypes.func
, onValueChange: React.PropTypes.func
, androidTint: React.PropTypes.string //Android Specific, overrides tintColor
, height: React.PropTypes.number //Android Specific
};
SegmentedControl.defaultProps = {
height: 38
, enabled: true
, tintColor: 'black'
};
`
##Example:
`javascript
class TestSegmentControl extends Component {
constructor(p) {
super(p);
this.state = {
selectedIndex: 0
, values: [ "Dogs", "Cats", "Birds" ]
, value: null
}
}
onChange(event) {
this.setState({ selectedIndex: event.nativeEvent.selectedSegmentIndex });
}
onValueChange(value) {
this.setState({value})
}
render() {
let text;
switch(this.state.selectedIndex) {
case 0 :
text = "Woof";
break;
case 1 :
text = "Meow";
break;
case 3:
text = "Tweet";
break;
default:
text = "This is awkward";
}
return (
onValueChange={this.onValueChange.bind(this)}
tintColor={'orange'}
androidTint={'red'} //overrides tintColor in Android so Android is red and iOS is orange
selectedIndex={this.state.selectedIndex}/>
{text}
{this.state.value}
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1
, marginTop: 20
, backgroundColor: '#F5FCFF'
}
, welcome: {
fontSize: 20
, textAlign: 'center'
, margin: 10
}
, instructions: {
textAlign: 'center'
, color: '#333333'
, marginBottom: 5
}
});
``