ReactNative Components and APIs - fantasy0107/notes GitHub Wiki
Components and APIs
UIEXPLORER
Text 文字
color - #e4e4e499 = #e4e4e4 (顏色) + 99 (透明度)
透明度百分比 16進位
FlatList 列表
繼承 : scrollview
ref={(ref) => this.myFlatList = ref} - 指定ref, 可以用來呼叫 method
data - 要顯示的資料 (array)
ListHeaderComponent - 在最前面增加 component
ListFooterComponent - 在最尾巴增加 component
onEndReached - 當到底部會執行的動作
onEndReachedThreshold - 多遠算到底部
onViewableItemsChanged - 當看到的畫面產生改變 (要搭配 viewabilityConfig props)
horizontal - 是否要用讓 item 用水平方式呈現?
bounces={false} - 防止彈跳造成多call onEndReached // false = ios 會變成沒問題 但 android 會變成有問題
當滑到像第10頁如果沒有將 index 重新設定Flatlist 會一直載入到第 10頁,
用下面的辦法解決, 這樣可以將Flatlist 滑到最上面
this.myFlatList.scrollToOffset({animated: true, offset:0});
在 flatList 外用scrollView 包會一直觸發 onEnd
當看到的item發生改變 - props - onViewableItemsChanged
ReactNative之FlatList之onViewableItemsChanged深度挖掘与研究
constructor(props) {
this.handleViewableItemsChanged = this.handleViewableItemsChanged.bind(this)
this.viewabilityConfig = {viewAreaCoveragePercentThreshold: 50}
}
handleViewableItemsChanged(info) {
console.log(info)
}
<FlatList
onViewableItemsChanged={this.handleViewableItemsChanged}
viewabilityConfig={this.viewabilityConfig}
/>
可以用來判斷滑動
<FlatList
onScroll={event => {
}}
/>
要讓 Flatlist 知道除了 data props 有資料改變的props 是用 extradata
<FlatList data={...} extraData={this.state} .../>
<FlatList
...
data={[...]}
ListHeaderComponent={
<TextInput
...
onChangeText={(value: string): void => this._onChangeText(value)}
value={this.state.query}
...
/>
}
...
/>
TextInput
const _values = {
content: ""
};
a () {
this.props.b( _values.content);
_values.content = "";
}
<TextInput
onChangeText={val => (_values.content = val)}
onSubmitEditing={e => {
this.a();
}
/>
ScrollView 可滑動 view
TouchableOpacity 可以按的
style props
zIndex : 垂直的等級
react native element - ui components
React Navigation - route
動畫 Animated
interpolate () 插值 - 將輸入值轉成輸出值
const rotation = this.mode.interpolate({
inputRange: [0, 1],
outputRange: ['0deg', '45deg']
});
搭配 Animated.View
<Animated.View style={{
transform: [
{rotate: rotation}
]
}}>
Animated.View 相關的 style 會跟 interpolate 的值做連動
BackHandler
偵測實體返回鍵 (android)
The event subscriptions are called in reverse order (i.e. last registered subscription first),
and if one subscription returns true then subscriptions registered earlier will not be called.
訂閱的 BackHandler 是先進後出的方式(stack), 還有就是當回傳 true 時之前訂閱的就不會觸發 反之回傳 false 時會觸發上一個訂閱的 BackHandler
當沒有任何一個訂閱時會回傳 true
其它
1
2_|_3
|
4
1. borderTopWidth
2. borderLeftWidth
3. borderRightWidth
4. borderBottomWidth
Image
當 image 太大張時會導致一直掉格