30 KiB
id, title, original_id
| id | title | original_id |
|---|---|---|
| version-0.37-segmentedcontrolios | segmentedcontrolios | segmentedcontrolios |
SegmentedControlIOS #
Use SegmentedControlIOS to render a UISegmentedControl iOS.
Programmatically changing selected index #
The selected index can be changed on the fly by assigning the selectIndex prop to a state variable, then changing that variable. Note that the state variable would need to be updated as the user selects a value and changes the index, as shown in the example below.
Props #
enabled bool #
If false the user won't be able to interact with the control. Default value is true.
momentary bool #
If true, then selecting a segment won't persist visually.
The onValueChange callback will still work as expected.
onChange function #
Callback that is called when the user taps a segment; passes the event as an argument
onValueChange function #
Callback that is called when the user taps a segment; passes the segment's value as an argument
selectedIndex number #
The index in props.values of the segment to be (pre)selected.
tintColor string #
Accent color of the control.
values [string] #
The labels for the control's segment buttons, in order.
You can edit the content above on GitHub and send us a pull request!
Examples # | Edit on GitHub |
var React = require('react'); var ReactNative = require('react-native'); var { SegmentedControlIOS, Text, View, StyleSheet } = ReactNative;
class BasicSegmentedControlExample extends React.Component { render() { return ( <View> <View style={{marginBottom: 10}}> <SegmentedControlIOS values={['One', 'Two']} /> </View> <View> <SegmentedControlIOS values={['One', 'Two', 'Three', 'Four', 'Five']} /> </View> </View> ); } }
class PreSelectedSegmentedControlExample extends React.Component { render() { return ( <View> <View> <SegmentedControlIOS values={['One', 'Two']} selectedIndex={0} /> </View> </View> ); } }
class MomentarySegmentedControlExample extends React.Component { render() { return ( <View> <View> <SegmentedControlIOS values={['One', 'Two']} momentary={true} /> </View> </View> ); } }
class DisabledSegmentedControlExample extends React.Component { render() { return ( <View> <View> <SegmentedControlIOS enabled={false} values={['One', 'Two']} selectedIndex={1} /> </View> </View> ); } }
class ColorSegmentedControlExample extends React.Component { render() { return ( <View> <View style={{marginBottom: 10}}> <SegmentedControlIOS tintColor="#ff0000" values={['One', 'Two', 'Three', 'Four']} selectedIndex={0} /> </View> <View> <SegmentedControlIOS tintColor="#00ff00" values={['One', 'Two', 'Three']} selectedIndex={1} /> </View> </View> ); } }
class EventSegmentedControlExample extends React.Component { state = { values: ['One', 'Two', 'Three'], value: 'Not selected', selectedIndex: undefined };
render() { return ( <View> <Text style={styles.text} > Value: {this.state.value} </Text> <Text style={styles.text} > Index: {this.state.selectedIndex} </Text> <SegmentedControlIOS values={this.state.values} selectedIndex={this.state.selectedIndex} onChange={this._onChange} onValueChange={this._onValueChange} /> </View> ); }
_onChange = (event) => { this.setState({ selectedIndex: event.nativeEvent.selectedSegmentIndex, }); };
_onValueChange = (value) => { this.setState({ value: value, }); }; }
var styles = StyleSheet.create({ text: { fontSize: 14, textAlign: 'center', fontWeight: '500', margin: 10, }, });
exports.title = '<SegmentedControlIOS>'; exports.displayName = 'SegmentedControlExample'; exports.description = 'Native segmented control'; exports.examples = [ { title: 'Segmented controls can have values', render(): React.Element<any> { return <BasicSegmentedControlExample />; } }, { title: 'Segmented controls can have a pre-selected value', render(): React.Element<any> { return <PreSelectedSegmentedControlExample />; } }, { title: 'Segmented controls can be momentary', render(): React.Element<any> { return <MomentarySegmentedControlExample />; } }, { title: 'Segmented controls can be disabled', render(): React.Element<any> { return <DisabledSegmentedControlExample />; } }, { title: 'Custom colors can be provided', render(): React.Element<any> { return <ColorSegmentedControlExample />; } }, { title: 'Change events can be detected', render(): React.Element<any> { return <EventSegmentedControlExample />; } } ];
