onEndReached:触底加载
onEndReachedThreshold={0.1} :触底加载的位置, 默认是未显示区域 可见高度为50%(0.5)
onRefresh:下拉刷新(触发事件时,需要将refreshing设为true,返回数据后修改为false)
refreshing:刷新动画的状态,搭配下拉刷新使用
onScroll:监听滚动,传入参数event, event.nativeEvent.contentOffset.y
注意:RN处理事件的方式,经过特殊处理,特殊封装的同步事件,如果想要查看打印的值,需要先调用persist( )
回到顶部需要调用FlatList组件的方法,相当于在父组件调用子组件的方法,ref绑定方式,调用 scrollToIndex({index: 0})方法,0代表顶部
export default class App extends Component {
state = {showBtn: false};
render() {
return (
<View>
<FlatList
...
onScroll={this._onScroll}
ref={el => (this.f1 = el)}>
</FlatList>
{this.state.showBtn ? (
<TouchableOpacity onPress={() => this.f1.scrollToIndex({index: 0})}>
<Text style={{fontSize: rpx(30), color: 'white'}}>回到顶部</Text>
</TouchableOpacity>
) : null}
</View>
);
}
//监听滚动,控制回到顶部的显示
_onScroll = e => {
e.persist();
this.setState({showBtn: e.nativeEvent.contentOffset.y > 1000});
};
}
numColumns:多列布局
columnWrapperStyle:每行的样式,写法同style
export default class App extends Component {
render() {
return (
<FlatList
...
numColumns={2}
columnWrapperStyle={{
justifyContent: 'space-evenly',
marginTop: rpx(10),
}}
></FlatList>
);
}
}