这里是只有苹果的,如果想适配andorid,可以在showPickerFun方法里面使用platefrom判断

代码:

import React, {Component} from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
TouchableOpacity, Picker
} from 'react-native'; var Dimensions = require('Dimensions');
var {width, height} = Dimensions.get("window"); export default class MyApp extends Component { constructor(props) {
super(props);
this.state = {
language: "i",//默认选择的
position: "0",//第几个
showpicker: false,//是否显示picker
surePicker:''//点击确定选择的value
}
} showPickerFun() {
if (this.state.showpicker) {
return <View style={{position: "absolute", bottom: 0, left: 0, backgroundColor: '#0000ff'}}>
<View style={styles.pickerTop}>
<TouchableOpacity onPress={() => this.setState({showpicker: false})}>
<Text>取消</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.setState({showpicker:false,surePicker:this.state.language})}>
<Text>确认</Text>
</TouchableOpacity>
</View>
<Picker
selectedValue={this.state.language}
style={{height: 200, width: width}}
onValueChange={(itemValue, itemIndex) => this.setState({language: itemValue, position: itemIndex})}>
<Picker.Item label="1" value="a" itemStyle={styles.itemStyle}/>
<Picker.Item label="2" value="b"/>
<Picker.Item label="3" value="c"/>
<Picker.Item label="4" value="d"/>
<Picker.Item label="5" value="e"/>
<Picker.Item label="6" value="f"/>
<Picker.Item label="7" value="g"/>
<Picker.Item label="8" value="h"/>
<Picker.Item label="9" value="i"/>
</Picker>
</View>
} else {
return null
}
} render() {
return (
<View style={styles.wrapper}>
<TouchableOpacity onPress={() => this.setState({showpicker: true})}>
<Text>show or hide Picker</Text>
</TouchableOpacity>
{this.showPickerFun()}
<Text style={{marginTop: 20}}>onValueChange事件:{this.state.language}:{this.state.position}</Text>
<Text style={{marginTop: 20}}>点击确定的value:{this.state.surePicker}</Text>
</View>
)
}
} const styles = StyleSheet.create({
wrapper: {
flex: 1,
justifyContent: 'center',
alignItems: 'center'
},
itemStyle: {
width: 100, height: 50,
fontSize: 25,
},
pickerTop: {
height: 34,
justifyContent: 'space-between',//分布方式
flexDirection: 'row',//横向布局
alignItems: 'center',//侧轴居中
paddingLeft: 5,
paddingRight: 5 } });

最新文章

  1. C#与C++的发展历程第三 - C#5.0异步编程巅峰
  2. mssql查询列名中包含特定字段的列
  3. Python 10 —— 杂
  4. 关于STM8的用户数据空间读写问题
  5. MySQL中部分系统变量介绍
  6. linux修改挂载目录
  7. windows 端搭建nfs 服务器
  8. 程序员的家!我终于拥有自己的blog了!!!
  9. 关于mysql的安装
  10. Easyui 让Window弹出居中
  11. Linux 软连接与硬连接
  12. 浙大pat 1035题解
  13. WPF MVVM 架构 Step By Step(6)(把actions从view model解耦)
  14. 循环神经(LSTM)网络学习总结
  15. 【融云分析】如何实现分布式场景下唯一 ID 生成?
  16. IO流_文件切割与合并
  17. rabbitmq使用方法(二)
  18. 微信小程序开发之IOS/Android兼容坑(持续更新)
  19. Fedora26 tftp-server设置
  20. chrome和Firefox对p标签中单词换行的渲染(强制换行)

热门文章

  1. mysql+redis
  2. [Android Studio] Using Java to call OpenCV
  3. 使用命令行模式启动VMWare虚拟机
  4. cocos2dx内存管理
  5. [原]openstack-kilo--issue(十五) WARNING keystonemiddleware.auth_token Authorization failed for token Could not find token
  6. php中memcached的使用
  7. tensorflow的tile使用
  8. 挖矿程序的工作原理(BTC为例)
  9. PHP之对象类型
  10. IndentationError: expected an indented block 在继承中出现的问题:未完