rc-react-native-swrefresh
--
##rc-react-native-swrefresh是提供react-native下拉刷新和下拉加载组件,简单好用,支持自定义,支持iOS,Android 。
###提供SwRefreshScrollView和SwRefreshListView两种支持下拉刷新的组件,SwRefreshListView支持上拉加载更多。 实现方式不一样 所以Android体验可能稍微有点不同。
####因为刚接触,改着改着就有点冗余,代码不是很优美,会慢慢优化的.
##介绍:简书上有更详细的介绍
1. SwRefreshScrollView
兼容ScrollView的属性
onRefresh:PropTypes.func,
customRefreshView:PropTypes.func,
customRefreshViewHeight:PropTypes.number
beginRefresh()
endRefresh()
2. SwRefreshListView
兼容ListView, SwRefreshScrollView属性 新增endLoadMore方法
customLoadMoreView:PropTypes.func,
onLoadMore:PropTypes.func,
pusuToLoadMoreTitle:PropTypes.string,
loadingTitle:PropTypes.string,
noMoreDataTitle:PropTypes.string,
isShowLoadMore:PropTypes.bool
resetStatus()
setNoMoreData()
beginRefresh()
endRefresh()
endLoadMore(isNoMoreData)
##使用:
npm install rc-react-native-swrefresh --save
import {
SwRefreshScrollView,
SwRefreshListView,
RefreshStatus,
LoadMoreStatus
} from 'rc-react-native-swrefresh'
- Demo: SwRefreshScrollView
<SwRefreshScrollView
onRefresh={this._onRefresh.bind(this)}
>
<View style={styles.content}>
<Text>下拉刷新ScrollView</Text>
</View>
</SwRefreshScrollView>
-------------------------------------------------------------------------------
_onRefresh(end){
let timer = setTimeout(()=>{
clearTimeout(timer)
alert('刷新成功')
end()
},1500)
}
<SwRefreshListView
dataSource={this.state.dataSource}
ref="listView"
renderRow={this._renderRow.bind(this)}
onRefresh={this._onListRefersh.bind(this)}
onLoadMore={this._onLoadMore.bind(this)}
/>
-------------------------------------------------------------------------------
_onListRefersh(end){
let timer = setTimeout(()=>{
clearTimeout(timer)
this._page=0
let data = []
for (let i = 0;i<10;i++){
data.push(i)
}
this.setState({
dataSource:this._dataSource.cloneWithRows(data)
})
this.refs.listView.resetStatus()
end()
},1500)
}
_onLoadMore(end){
let timer = setTimeout(()=>{
clearTimeout(timer)
this._page++
let data = []
for (let i = 0;i<(this._page+1)*10;i++){
data.push(i)
}
this.setState({
dataSource:this._dataSource.cloneWithRows(data)
})
end(this._page > 2)
},2000)
}
componentDidMount() {
let timer = setTimeout(()=>{
clearTimeout(timer)
this.refs.listView.beginRefresh()
},500)
}
###具体查看Demo
###演示
![image](https://github.com/shiwenwen/react-native-swRefresh/blob/master/screenshot/refresh1.gif?raw=true)
![image](https://github.com/shiwenwen/react-native-swRefresh/blob/master/screenshot/refresh2.gif?raw=true)
![image](https://github.com/shiwenwen/react-native-swRefresh/blob/master/screenshot/refresh3.gif?raw=true)
![image](https://github.com/shiwenwen/react-native-swRefresh/blob/master/screenshot/refresh4.gif?raw=true)