美文网首页React Native开发小白
React Native组件学习 Button(ES6)

React Native组件学习 Button(ES6)

作者: 天方夜歌 | 来源:发表于2018-04-21 22:27 被阅读6次

    在iOS或安卓开发平台,Button绝对是我们常用的组件,接下来小萌说一说Button在react native中如何使用呢?

    一、Button组件的属性:

    accessibilityLabel: string

    设置辅助功能是需要显示的文字。

    color: string

    这里有个区别,在Android设备上设置的是Button背景的颜色,在Ios设备上设置的是Button上文字的颜色。

    disabled: boolean

    设置Button是否可以点击。

    onPress: () => any

    设置Button的点击事件。

    testID: string

    设置Button的id,用于控件查找,类似于我们iOS中的button.tag。

    title: string

    设置Button上显示的文字。

    在React-Native中Button只有以上6种属性,使用起来还是非常简单的。但是你有没有注意Button并没有style属性,也就是说,不能通过style调整button的大小和布局,怎么办呢?很简单View组件是有style的吧,我们让Button的父组件是一个View就OK了。

    下面来看具体使用方法:

    首先 import中需要引入button组件

    import React,{Component} from 'react';
    
    import{
    
       AppRegistry,
    
       StyleSheet,
    
       Button
    
     }from 'react-native';
    

    声明一个点击按钮的事件,比如弹出一个Dialog,别忘了还需要在import中添加Alert组件;

     import{
    
       AppRegistry,
    
       StyleSheet,
    
        Alert,
    
        Button
    
        }from 'react-native';
    
      const onButtonPress = () => {
    
         alert('点击了Button按钮');
    
     };
    

    暂时看不懂没关系,以后会具体学习的,现在只要知道这段代码会弹出一个Dialog就行了。然后就是在render中渲染就行了:

      export default class App extends Component{
    
     render(){
    
       return(
    
         <Button
    
          title="我是按钮"
    
           onPress={onButtonPress}
    
          color="#841584">
    
         </Button>   
    
      );
    
         }
    
      }
    

    运行结果:

    image.png

    再来看一下disable属性的效果:

      <Button
    
        disabled = {true}
    
       title="我是按钮"
    
       onPress={onButtonPress}
    
        color="#841584">
    
       </Button>  
    

    注意看,是直接写disabled即可,Button默认是可点击的,添加disabled后就是不可点击状态,效果如下:

    按钮背景自动变成了灰色,并且点击按钮也没有了任何响应。

    image.png

    以上就是Button的用法,下面继续学习如何自定义Button,因为在实际开发中自定义button总是不可缺少的,对不。

    二、自定义Button

    对于自定义Button官方给我提供了两种方式,分别是TouchableOpacity和TouchableNativeFeedback(Android平台专用)。

    首先来看TouchableOpacity,我们要实现的最终效果如下:

    代码如下:

        export default class App extends Component{
    
           render(){
    
                return(
    
                   <TouchableOpacity  onPress={onButtonPress}  activeOpacity={0.2} focusedOpacity={0.5}>
    
          <View style=  {{justifyContent:'center',alignItems:'center',width:128,height:128,backgroundColor:'#841584'}}>
    
          <Image source={require('./image/ic_search.png')}>
    
          </Image>
    
          <Text style={{color:'#ffffff'}}>ImageButton</Text>
    
         </View>
    
      </TouchableOpacity>
    
       );
    
       }
    
    }
    

    TouchableOpacity组件中使用了三个属性,具体含义:

    onPress 指定点击事件;

    activeOpacity 正常状态下的透明度;

    focusedOpacity 点击状态下的透明度;

    TouchableOpacity组件的子组件是一个View,里边又包含了一个Image和Text,最终构成了我们自定义的ImageButton属性。

    TouchableNativeFeedback其实和TouchableOpacity使用方式差不多,只不过属性不太一样。

    掌握了TouchableOpacity和TouchableNativeFeedback,我们就可以开心的定制各种各样的button了。

    相关文章

      网友评论

        本文标题:React Native组件学习 Button(ES6)

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