目前RN还有针对智能电视的按键事件,现有的触摸事件主要有以下几个组件:
1 TouchableHighlight(点击事件有颜色变化)
renderButton: function() {
return (
<TouchableHighlight onPress={this._onPressButton}>
<Image
style={styles.button}
source={require('./button.png')}
/>
</TouchableHighlight>
);
},
onPressButton可以自己写点击后执行的事件.
2 TouchableNativeFeedback
目前它只支持一个单独的View实例作为子节点。在底层实现上,实际会创建一个新的RCTView结点替换当前的子View,并附带一些额外的属性。
renderButton: function() {
return (
<TouchableNativeFeedback
onPress={this._onPressButton}
background={TouchableNativeFeedback.SelectableBackground()}>
<View style={{width: 150, height: 100, backgroundColor: 'red'}}>
<Text style={{margin: 30}}>Button</Text>
</View>
</TouchableNativeFeedback>
);
},
background backgroundPropType
决定在触摸反馈的时候显示什么类型的背景。它接受一个有着type属性和一些基于type属性的额外数据的对象。我们推荐使用以下的静态方法之一来创建这个对象:
3 TouchableOpacity(没有颜色变化,但有动画)
renderButton: function() {
return (
<TouchableOpacity onPress={this._onPressButton}>
<Image
style={styles.button}
source={require('image!myButton')}
/>
</TouchableOpacity>
);
},
activeOpacity number #
指定封装的视图在被触摸操作激活时以多少不透明度显示(通常在0到1之间)
4 TouchableWithoutFeedback
除非你有一个很好的理由,否则不要用这个组件。所有能够响应触屏操作的元素在触屏后都应该有一个视觉上的反馈(然而本组件没有任何视觉反馈)