zoukankan      html  css  js  c++  java
  • RN picker使用

    这里是只有苹果的,如果想适配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}}
                        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: {
             100, height: 50,
            fontSize: 25,
        },
        pickerTop: {
            height: 34,
            justifyContent: 'space-between',//分布方式
            flexDirection: 'row',//横向布局
            alignItems: 'center',//侧轴居中
            paddingLeft: 5,
            paddingRight: 5
    
        }
    
    });
    
  • 相关阅读:
    Java程序员极力推荐的springboot全家桶干货系列——收藏必会系列
    mysql 远程连接数据库的二种方法
    mysql取以当前时间为中心的任意时间段的时间戳
    使用sql语句,查询 mysql 的安装地址
    MyEclipse中点击Deploy MyEclipse J2EE Project to Server无响应解决方法
    使用DOS访问数据库详解
    mysql查询字段为null 返回0
    MySQL触发器Trigger实例篇
    JAVA汉字转拼音(取首字母大写)
    阿里云上传文件
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/10031066.html
Copyright © 2011-2022 走看看