React Native元件篇(四) — Touchable系列元件
Touchable元件是什麼
從字面上的意思我們就可以理解,Touchable是可觸控的控制元件,相當於我們iOS的簡單手勢。複雜的RN處理手勢還有專門的API如果你想實現檢視的拖拽,或是實現自定義的手勢,那麼請參閱PanResponder API或是手勢識別系統的文件。
Touchable現在主要有四種元件,TouchableHighlight 、TouchableOpacity 、 TouchableNativeFeedback 、 ouchableWithoutFeedback 。
-
一般來說,你可以使用TouchableHighlight來製作按鈕或者連結。注意此元件的背景會在使用者手指按下時變暗。
-
在Android上還可以使用TouchableNativeFeedback,它會在使用者手指按下時形成類似墨水漣漪的視覺效果。
-
TouchableOpacity會在使用者手指按下時降低按鈕的透明度,而不會改變背景的顏色。
-
如果你想在處理點選事件的同時不顯示任何視覺反饋,則需要使用TouchableWithoutFeedback。
Touchable元件程式碼演示
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
View,
Text,
TouchableHighlight,
TouchableOpacity,
} from 'react-native';
class RNHybrid extends Component {
constructor(props) {
super(props);
this.state = {event:'TouchableOpacity',
hightState:'TouchableHighlight'};
}
render() {
return(
<View style={styles.container}>
<TouchableHighlight
activeOpacity = {0.5}
underlayColor = 'yellow'
onHideUnderlay={()=>this.hightStateSet('隱藏')}
onShowUnderlay={()=>this.hightStateSet('顯示')}
onPress={()=>this.hightStateSet('點選')}
>
<Text>
{this.state.hightState}
</Text>
</TouchableHighlight>
<TouchableOpacity
underlayColor='blue'
onPress={()=>this.touchEvent('點選')}
onPressIn={()=>this.touchEvent('按下')}
onPressOut={()=>this.touchEvent('抬起')}
onLongPress={()=>this.touchEvent('長按')}
>
<Text>
{this.state.event}
</Text>
</TouchableOpacity>
</View>
);
}
hightStateSet(highSateStr){
this.setState({hightState:highSateStr});
}
touchEvent(eventStr){
this.setState({event:eventStr});
}
}
const styles = StyleSheet.create({
container:{
marginTop:100,
flexDirection:'row',
flexWrap:'wrap',
justifyContent:'space-around',
},
});
AppRegistry.registerComponent('RNHybrid', () => RNHybrid);
效果:
相關文章
- React Native06 - TextInput元件、Touchable系列元件、QQ登入介面React Native元件
- React Native元件篇(二) — Image元件React Native元件
- React Native元件篇(三) — TextInput元件React Native元件
- React Native元件篇(一) — Text元件React Native元件
- React Native元件(二)View元件解析React Native元件View
- React Native——Component(元件)React Native元件
- React Native 截圖元件React Native元件
- React Native 元件(一)元件的生命週期React Native元件
- React Native 文件檢視元件React Native元件
- 【原始碼解析】React Native元件渲染原始碼React Native元件
- React Native 互動元件之 SwitchReact Native元件
- React Native 圖片檢視元件React Native元件
- React Native 實現 Slider 元件React NativeIDE元件
- React Native圖片快取元件React Native快取元件
- React Native 定義元件(簡單)React Native元件
- React Native選擇器元件-react-native-slidepickerReact Native元件IDE
- React Native 實現城市選擇元件React Native元件
- React Native日期時間選擇元件React Native元件
- beeshell:開源的 React Native 元件庫React Native元件
- React Native 效能優化元件-PureComponentReact Native優化元件
- expo react-native視訊播放元件React元件
- React Native 自定義元件及屬性React Native元件
- vue系列元件篇(二)Vue元件
- React Native常用三方元件庫大全React Native元件
- React 深入系列2:元件分類React元件
- React 深入系列6:高階元件React元件
- react元件通訊通識篇React元件
- react篇章-React 元件-複合元件React元件
- 美團React Native開源元件庫beeshell詳解React Native元件
- 開源React Native元件庫beeshell 2.0釋出React Native元件
- React Native 學習指南(三) - 把玩更多UI元件React NativeUI元件
- React Native元件學習 StatusBar(ES6)React Native元件
- React Native元件佈局應用示例小結React Native元件
- 國人自定義React Native開源元件ViewPagerReact Native元件Viewpager
- 元件庫設計實戰系列:重新設計 React 元件庫元件React
- React元件React元件
- expo 搭建 react-native 元件庫【圖文並茂】React元件
- React Native 實現自定義下拉重新整理元件React Native元件