React Native学习之组件Touchable系列

Demo展示

React Native学习之组件Touchable系列_第1张图片
Touchable.gif

今天学的组件有点于类似于原生Android当中的button,点击它时它的背景会发生变化,给用户一种视觉交互。在Android中叫selector,而在RN中叫Touchable系列。之前在学Text组件时,我们通过onPress事件可以给Text组件绑定触摸点击事件。为了像Text组件那样使得其他组件也可以被点击,RN提供了三个Touchable类组件:

  • TouchableHightlight:高亮触摸。用户点击时,会产生高亮效果
  • TouchableOpacity:透明触摸。用户点击时,被点击的组件会出现透明效果
  • TouchableWithoutFeedback:无反馈性触摸。用户点击时,被点击的组件不会出现任何视觉变化。(没有UI交互,一般很少用)

实现上图效果

import React, {Component} from 'react';
import {
    AppRegistry,
    StyleSheet,
    Text,
    TouchableHighlight,
    TouchableOpacity,
    View
} from 'react-native';

class RNStudyFour extends Component {

    show(text) {
        alert(text);
    }

    render() {
        return (
            
                
                    
                        TouchableHighlight
                        activeOpacity
                    
                

                
                    
                        TouchableHighlight
                        underlayColor
                    
                

                
                    TouchableOpacity
                
            
        );
    }
    }

const styles = StyleSheet.create({

    container: {
        height: 100,
        backgroundColor: '#FF0000',
        borderRadius: 10,
        justifyContent: 'center',
        alignItems: 'center',
        marginLeft: 30,
        marginRight: 30,
        marginTop: 30

    },
    font: {
        fontSize: 25,
        color: '#fff'
    },
});

AppRegistry.registerComponent('RNStudyFour', () => RNStudyFour);

实现起来还是比较简单的。有两个地方需要注意一下:

  • TouchableHighlight的activeOpacity和underlayColor

    • activeOpacity:触摸时透明度的设置
    • underlayColor:点击时背景阴影效果的背景颜色

TouchableHighlight还有两个属性,我们大部是用这两个,其它的就不介绍了。它们之间的区别根据图中可以明显的看出来。因为第一个按钮设置的activeOpacity为0,所以点击第一个按钮后完全不透明。

  • TouchableOpacity也有activeOpacity属性,但我们经常不用它,因为默认就设置背景颜色的变化了。

好了。今天的Touchable系列组件就学完了。若有不对之处,还请告知。谢谢!

你可能感兴趣的:(React Native学习之组件Touchable系列)