React Native开发之——组件RefreshControl
前言
这一组件可以用在ScrollView或ListView内部,为其添加下拉刷新的功能。当ScrollView处于竖直方向的起点位置(scrollY: 0),此时下拉会触发一个onRefresh事件。
组件RefreshControl
属性
- onRefresh function:在视图开始刷新时调用。
- refreshing bool:视图是否应该在刷新时显示指示器。
- colors(Android) [ColorPropType]:指定至少一种颜色用来绘制刷新指示器。
- enabled(Android) bool:指定是否要开启刷新指示器。
- progressBackgroundColor(Android) ColorPropType:指定刷新指示器的背景色。
- size RefreshLayoutConsts.SIZE.DEFAULT:指定刷新指示器的大小,具体数值可参阅RefreshControl.SIZE.
- progressViewOffset(Android) React.PropTypes.number:指定刷新指示器的垂直起始位置(top offset)。
- tintColor(IOS) ColorPropType :指定刷新指示器的颜色。
- title(IOS) string :指定刷新指示器下显示的文字。
代码实例
import React, {Component} from 'react';
import
{
StyleSheet,
Text,
View,
RefreshControl,
ScrollView,
} from 'react-native';
type Props = {};
export default class App extends Component<Props>
{
constructor(props)
{
super(props);
this.state = {isRefreshing: false,};
}
_onRefresh()
{
this.setState({isRefreshing: true});
setTimeout(()=>
{
this.setState({isRefreshing: false});
//加载数据
},2000)
}
render()
{
return
(
<View style={styles.contain}>
<ScrollView
refreshControl={
<RefreshControl
refreshing={this.state.isRefreshing}
onRefresh={this._onRefresh.bind(this)}
tintColor="#ff0000"
title="Loading..."
titleColor="#00ff00"
colors={['#ff0000', '#00ff00', '#0000ff']}
progressBackgroundColor="#ffff00"/>
}>
<Text>显示数据</Text>
</ScrollView>
</View>
);
}
}
const styles = StyleSheet.create(
{
contain: {flex: 1,},
});
效果图
其他
参考:Github下载