runnercamp-react-native-swrefresh
--
runnercamp-react-native-swrefresh是提供react-native下拉刷新和下拉加载组件,简单好用,支持自定义,支持iOS,Android 。
提供SwRefreshScrollView和SwRefreshListView两种支持下拉刷新的组件,SwRefreshListView支持上拉加载更多。 实现方式不一样 所以Android体验可能稍微有点不同。
因为刚接触,改着改着就有点冗余,代码不是很优美,会慢慢优化的.
--
简书上有更详细的介绍
介绍:1. SwRefreshScrollView
兼容ScrollView的属性
- props:
/*** 刷新数据时的操作, 参数 end:function 操作结束时执行end() 以结束刷新状态*/onRefresh:PropTypesfunc/*** 需要返回一个自定义的刷新视图,* 参数:* refresStatus:RefreshStatus, 0 下拉以刷新 1 松开以刷新 2 刷新中* offsetY:number 下拉的距离 用于自定义刷新*/customRefreshView:PropTypesfunc/*** 如果自定义刷新视图 需要传递这个视图的高度 默认视图情况下 此属性无效*/customRefreshViewHeight:PropTypesnumber
- func:
/*** 手动调用刷新*/ /*** 手动结束 推荐end()回调*/
2. SwRefreshListView
兼容ListView, SwRefreshScrollView属性 新增endLoadMore方法
- props:
/*** 自定义底部部刷新指示组件的渲染方法,* 参数*/customLoadMoreView:PropTypesfunc/*** 处于pushing(加载更多时)状态时执行的方法* 参数:end,最后执行完操作后应该调用end(isNoMoreData)。* isNoMoreData 表示当前是否已经加载完所有数据 已无更多数据*/onLoadMore:PropTypesfunc/*** //默认样式中的上拉加载更多的提示语*/pusuToLoadMoreTitle:PropTypesstring/*** //默认样式中正在加载的提示语*/loadingTitle:PropTypesstring/*** //默认样式中已无更多时的提示语*/noMoreDataTitle:PropTypesstring/*** 是否显示底部的加载更多 通常用于全部数据不足一页 底部还显示加载更多导致的难看*/isShowLoadMore:PropTypesbool
- func:
/*** 重置已无更多数据的状态 通常用于下拉刷新数据完毕后 重置状态*//*** 直接将状态置为没有更多数据状态 通常用于第一次刷新加载的后数据已全部加载 不必下拉刷新* 也可使用 isShowLoadMore:PropTypes.bool将上拉加载组件隐藏*/ /*** 手动调用刷新*/ /*** 手动结束 推荐end()回调*//* * 手动结束加载 * isNoMoreData 表示当前是否已经加载完所有数据 已无更多数据 * */
使用:
npm install runnercamp-react-native-swrefresh --save
- 导入
//根据需要引入
- Demo: SwRefreshScrollView
<SwRefreshScrollView onRefresh=this_onRefresh //其他你需要设定的属性(包括ScrollView的属性) > <View style=stylescontent> <Text>下拉刷新ScrollView</Text> </View> </SwRefreshScrollView> ------------------------------------------------------------------------------- /** * 模拟刷新 * @param end * @private */ { let timer = }
- Demo: SwRefreshListView
<SwRefreshListView dataSource=thisstatedataSource ref="listView" renderRow=this_renderRow onRefresh=this_onListRefersh onLoadMore=this_onLoadMore //其他需要设置的ListView属性/> ------------------------------------------------------------------------------- /** * 模拟刷新 * @param end * @private */ { let timer = } /** * 模拟加载更多 * @param end * @private */ { let timer = } { let timer = //自动调用开始刷新 新增方法 }