Slider #

A component used to select a single value from a range of values.

Props #

disabled?: bool #

If true the user won't be able to move the slider. Default value is false.

maximumTrackTintColor?: color #

The color used for the track to the right of the button. Overrides the default blue gradient image on iOS.

maximumValue?: number #

Initial maximum value of the slider. Default value is 1.

minimumTrackTintColor?: color #

The color used for the track to the left of the button. Overrides the default blue gradient image on iOS.

minimumValue?: number #

Initial minimum value of the slider. Default value is 0.

onSlidingComplete?: function #

Callback called when the user finishes changing the value (e.g. when the slider is released).

onValueChange?: function #

Callback continuously called while the user is dragging the slider.

step?: number #

Step value of the slider. The value should be between 0 and (maximumValue - minimumValue). Default value is 0.

style?: ViewPropTypes.style #

Used to style and layout the Slider. See StyleSheet.js and ViewStylePropTypes.js for more info.

testID?: string #

Used to locate this view in UI automation tests.

value?: number #

Initial value of the slider. The value should be between minimumValue and maximumValue, which default to 0 and 1 respectively. Default value is 0.

This is not a controlled component, you don't need to update the value during dragging.

androidthumbTintColor?: color #

Color of the foreground switch grip.

iosmaximumTrackImage?: Image.propTypes.source #

Assigns a maximum track image. Only static images are supported. The leftmost pixel of the image will be stretched to fill the track.

iosminimumTrackImage?: Image.propTypes.source #

Assigns a minimum track image. Only static images are supported. The rightmost pixel of the image will be stretched to fill the track.

iosthumbImage?: Image.propTypes.source #

Sets an image for the thumb. Only static images are supported.

iostrackImage?: Image.propTypes.source #

Assigns a single image for the track. Only static images are supported. The center pixel of the image will be stretched to fill the track.

You can edit the content above on GitHub and send us a pull request!

Examples #

Edit on GitHub
'use strict'; var React = require('react'); var ReactNative = require('react-native'); var { Slider, Text, StyleSheet, View, } = ReactNative; class SliderExample extends React.Component { static defaultProps = { value: 0, }; state = { value: this.props.value, }; render() { return ( <View> <Text style={styles.text} > {this.state.value && +this.state.value.toFixed(3)} </Text> <Slider {...this.props} onValueChange={(value) => this.setState({value: value})} /> </View> ); } } class SlidingCompleteExample extends React.Component { state = { slideCompletionValue: 0, slideCompletionCount: 0, }; render() { return ( <View> <SliderExample {...this.props} onSlidingComplete={(value) => this.setState({ slideCompletionValue: value, slideCompletionCount: this.state.slideCompletionCount + 1})} /> <Text> Completions: {this.state.slideCompletionCount} Value: {this.state.slideCompletionValue} </Text> </View> ); } } var styles = StyleSheet.create({ slider: { height: 10, margin: 10, }, text: { fontSize: 14, textAlign: 'center', fontWeight: '500', margin: 10, }, }); exports.title = '<Slider>'; exports.displayName = 'SliderExample'; exports.description = 'Slider input for numeric values'; exports.examples = [ { title: 'Default settings', render(): React.Element<any> { return <SliderExample />; } }, { title: 'Initial value: 0.5', render(): React.Element<any> { return <SliderExample value={0.5} />; } }, { title: 'minimumValue: -1, maximumValue: 2', render(): React.Element<any> { return ( <SliderExample minimumValue={-1} maximumValue={2} /> ); } }, { title: 'step: 0.25', render(): React.Element<any> { return <SliderExample step={0.25} />; } }, { title: 'onSlidingComplete', render(): React.Element<any> { return ( <SlidingCompleteExample /> ); } }, { title: 'Custom min/max track tint color', render(): React.Element<any> { return ( <SliderExample minimumTrackTintColor={'blue'} maximumTrackTintColor={'red'} value={0.5} /> ); } }, { title: 'Custom thumb color', platform: 'android', render(): React.Element<any> { return <SliderExample thumbTintColor={'blue'} />; } }, { title: 'Custom thumb image', platform: 'ios', render(): React.Element<any> { return <SliderExample thumbImage={require('./uie_thumb_big.png')} />; } }, { title: 'Custom track image', platform: 'ios', render(): React.Element<any> { return <SliderExample trackImage={require('./slider.png')} />; } }, { title: 'Custom min/max track image', platform: 'ios', render(): React.Element<any> { return ( <SliderExample minimumTrackImage={require('./slider-left.png')} maximumTrackImage={require('./slider-right.png')} /> ); } }, ];