用于选择一个范围值的组件。
属性
disabled bool #
如果为true,用户就不能移动滑块。默认为false。
iosmaximumTrackImage Image.propTypes.source #
指定一个滑块右侧轨道背景图。仅支持静态图片。图片最左边的像素会被平铺直至填满轨道。
maximumTrackTintColor string #
滑块右侧轨道的颜色。默认为一个蓝色的渐变色。
maximumValue number #
滑块的最大值(当滑块滑到最右端时表示的值)。默认为1。
iosminimumTrackImage Image.propTypes.source #
指定一个滑块左侧轨道背景图。仅支持静态图片。图片最右边的像素会被平铺直至填满轨道。
minimumTrackTintColor string #
滑块左侧轨道的颜色。默认为一个蓝色的渐变色。
minimumValue number #
滑块的最小值(当滑块滑到最左侧时表示的值)。默认为0。
onSlidingComplete function #
用户结束滑动的时候调用此回调。
onValueChange function #
在用户拖动滑块的过程中不断调用此回调。
step number #
滑块的最小步长。这个值应该在0到(maximumValue - minimumValue)之间。默认值为0。
style View#style #
thumbImage Image.propTypes.source #
给滑块设置一张图片。只支持静态图片。
androidthumbTintColor ColorPropType #
Color of the foreground switch grip.
trackImage Image.propTypes.source #
给轨道设置一张背景图。只支持静态图片。图片最中央的像素会被平铺直至填满轨道。
value number #
滑块的初始值。这个值应该在最小值和最大值之间。默认值是0。
这不是一个受约束的组件。也就是说,如果你不更新值,在用户操作后,这个组件也不会还原到初始值。
例子
'use strict';
var React = require('react');
var ReactNative = require('react-native');
var {
Slider,
Text,
StyleSheet,
View,
} = ReactNative;
var SliderExample = React.createClass({
getDefaultProps() {
return {
value: 0,
}
},
getInitialState() {
return {
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>
);
}
});
var SlidingCompleteExample = React.createClass({
getInitialState() {
return {
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(): ReactElement<any> {
return <SliderExample />;
}
},
{
title: 'Initial value: 0.5',
render(): ReactElement<any> {
return <SliderExample value={0.5} />;
}
},
{
title: 'minimumValue: -1, maximumValue: 2',
render(): ReactElement<any> {
return (
<SliderExample
minimumValue={-1}
maximumValue={2}
/>
);
}
},
{
title: 'step: 0.25',
render(): ReactElement<any> {
return <SliderExample step={0.25} />;
}
},
{
title: 'onSlidingComplete',
render(): ReactElement<any> {
return (
<SlidingCompleteExample />
);
}
},
{
title: 'Custom min/max track tint color',
platform: 'ios',
render(): ReactElement<any> {
return (
<SliderExample
minimumTrackTintColor={'red'}
maximumTrackTintColor={'green'}
/>
);
}
},
{
title: 'Custom thumb image',
platform: 'ios',
render(): ReactElement<any> {
return <SliderExample thumbImage={require('./uie_thumb_big.png')} />;
}
},
{
title: 'Custom track image',
platform: 'ios',
render(): ReactElement<any> {
return <SliderExample trackImage={require('./slider.png')} />;
}
},
{
title: 'Custom min/max track image',
platform: 'ios',
render(): ReactElement<any> {
return (
<SliderExample
minimumTrackImage={require('./slider-left.png')}
maximumTrackImage={require('./slider-right.png')}
/>
);
}
},
];