React Native开发之——组件Picker
前言
Picker常用于显示时间、地址选择器,是常用的控件之一。在RN开发中,系统也为我们提供Picker控件,并且提供了IOS专用的PickerIOS组件。
本文主要讲解Picker的使用,并介绍常用的Picker属性:
Picker
Picker属性介绍
onValueChange
某一项被选中时执行此回调。调用时带有如下参数:
- itemValue: 被选中项的value属性
- itemPosition: 被选中项在picker中的索引位置
selectedValue
默认选中的值。可以是字符串或整数。
testID
用于在端对端测试中定位此视图。
enabled(Android特有)
如果设为false,则会禁用此选择器。
mode(Android特有)
在Android上,可以指定在用户点击选择器时,以怎样的形式呈现选项:
- dialog(对话框形式): 显示一个模态对话框。默认选项。
- dropdown(下拉框形式): 以选择器所在位置为锚点展开一个下拉框
prompt(Android特有)
设置选择器的提示字符串。在Android的对话框模式中用作对话框的标题。
itemStyle(ios特有)
指定应用在每项标签上的样式。
代码示例
export default class App extends Component<Props>
{
constructor(props)
{
super(props);
this.state =
{
language:''
};
}
render()
{
return (
<View style={{margin:30}}>
<Picker selectedValue={this.state.language} mode={Picker.MODE_DIALOG} style={{width:200}} prompt='请选择语言'
enabled={true}
itemStyle={{fontSize:25, color:'red',textAlign:'left',fontWeight:'bold'}} onValueChange={(lang)=>this.setState({language:lang})}>
<Picker.Item label='Java' value='java'/>
<Picker.Item label="JavaScript" value="js" />
<Picker.Item label="C++" value="cpp" />
<Picker.Item label="Swift" value="swift" />
</Picker>
<TouchableOpacity onPress={this.onPress.bind(this,this.state.language)}>
<Text>确定</Text>
</TouchableOpacity>
</View>
);
}
onPress(language)
{
alert(language)
}
}
效果图
其他
参考:Github下载