React Native之旅02-控件View

作者: 晓峰残月 | 来源:发表于2016-01-15 22:11 被阅读544次

    大概浏览了一下ReactNative的控件,发现他的控件还是挺多的。下面就是我用最基本的View,Image,Text和TextInput。

    1、View简单用法

    view是一个支持Flexbox布局、样式、一些触摸处理、和一些无障碍功能的容器,并且它可以放到其它的视图里,也可以有任意多个任意类型的子视图。不论在什么平台上,View都会直接对应一个平台的原生视图

    主要属性用法

    alignItems enum('flex-start', 'flex-end', 'center', 'stretch')
    //里控件的对齐方式
    flex number
    //所占的比例
    flexDirection enum('row', 'column')
    //方向

     <View style={[styles.flexRow,styles.marginLeftAndRight8]}>
        <Text style={styles.flex1}>
            立即注册
        </Text>
        <Text style={[styles.flex1,styles.textRight]}>
            忘记密码
        </Text>
    </View>
    

    这里的立即注册和忘记密码就是横向布局各占flex1,也就是各占一半

    2、Image简单用法

    一个用于显示多种不同类型图片的React组件,包括网络图片、静态资源、临时的本地图片、以及本地磁盘上的图片(如相册)等

    主要属性用法

    resizeMode enum('cover', 'contain', 'stretch')
    1.cover:在保持图片宽高比的前提下缩放图片,直到宽度和高度都大于等于容器视图的尺寸(如果容器有padding内衬的话,则相应减去)。译注:这样图片完全覆盖甚至超出容器,容器中不留任何空白。
    2.contain: 在保持图片宽高比的前提下缩放图片,直到宽度和高度都小于等于容器视图的尺寸(如果容器有padding内衬的话,则相应减去)。译注:这样图片完全被包裹在容器中,容器中可能留有空白
    3.stretch: 拉伸图片且不维持宽高比,直到宽高都刚好填满容器。<br />
    source {uri: string}, number
    uri是一个表示图片的资源标识的字符串,它可以是一个http地址或是一个本地文件路径(使用require(相对路径)
    来引用)。

      <View style={styles.center}>
        <Image style={[styles.margin8,styles.logo]}
               source={require('./image/sina_logo.png')}/>
    </View>
    

    3、TextInput简单用法

    TextInput是一个允许用户在应用中通过键盘输入文本的基本组件。本组件的属性提供了多种特性的配置,譬如自动完成、自动大小写、占位文字,以及多种不同的键盘类型(如纯数字键盘)等等。

    主要属性用法

    keyboardType enum("default", 'numeric', 'email-address', "ascii-capable", 'numbers-and-punctuation', 'url', 'number-pad', 'phone-pad', 'name-phone-pad', 'decimal-pad', 'twitter', 'web-search')
    决定弹出的何种软键盘的,譬如numeric(纯数字键盘)。<br />
    android的属性underlineColorAndroid
    文本框的下划线颜色(译注:如果要去掉文本框的边框,请将此属性设为透明transparent)。<br />
    secureTextEntry
    如果为true,文本框会遮住之前输入的文字,这样类似密码之类的敏感文字可以更加安全。默认值为false。

    <TextInput
        style={[styles.marginLeftAndRight8,styles.textInput]}
        placeholder='请输入密码'
        secureTextEntry={true}
        underlineColorAndroid="transparent"
    />
    

    最后的效果图是这样的:


    ps:有点丑,请见谅

    代码如下

    <View style={styles.base}>    
      <View style={styles.center}>        
        <Image style={[styles.margin8,styles.logo]}               
                    source={require('./image/sina_logo.png')}/>          
      </View>    
      <View style={styles.marginTop10}>        
        <TextInput            
            style={[styles.margin8,styles.textInput]}  
                      placeholder='请输入用户名'    
                  underlineColorAndroid="transparent"        />
            <TextInput
                style={[styles.marginLeftAndRight8,styles.textInput]}
                placeholder='请输入密码'
                secureTextEntry={true}
                underlineColorAndroid="transparent"
            />
        </View>
        <View style={[styles.margin8,styles.submitView]}>
            <Text style={styles.submit}>
                登录
            </Text>
        </View>
        <View style={[styles.flexRow,styles.marginLeftAndRight8]}>
            <Text style={styles.flex1}>
                立即注册
            </Text>
            <Text style={[styles.flex1,styles.textRight]}>
                忘记密码        
          </Text>
        </View>
    </View>
    

    样式:

    base:{
        backgroundColor: '#E3E3E3',
        flex: 1, 
       flexDirection: 'column',
    },
    flexRow:{
        flexDirection:'row'
    },
    flex1:{
        flex:1
    },
    flex2:{
        flex:2
    },
    center:{
        alignItems:'center'
    },
    textRight:{
        textAlign:'right',
    },
    margin8:{
       margin:8,
    },
    marginTop10:{
        marginTop:10,
    },
    marginLeftAndRight8:{
        marginLeft:8,
        marginRight:8,
    },
    logo: {
        width: 200,
        height: 100,
        resizeMode: 'contain',
        marginTop:50,},
    textInput:{
        backgroundColor: '#ffffff',
        height:40,
    },
    submitView: {
        paddingTop: 8,
        paddingBottom: 8,
        backgroundColor: '#88bc39',
        marginTop:14,
    },
    submit: {
        color: "#ffffff",
        fontSize: 16,
        textAlign: 'center',
    },
    

    控件具体属性以及其它用法请参考React Native官网或者React Native 中文网
    <br />

    欢迎留言或私信交流,谢谢

    转载请注明转载地址:http://www.jianshu.com/p/2e3d74757894
    React Native之旅02-控件View

    相关文章

      网友评论

        本文标题:React Native之旅02-控件View

        本文链接:https://www.haomeiwen.com/subject/bophkttx.html