react-native ListView下拉刷新上拉加载实现代码


Posted in Javascript onAugust 03, 2017

本文介绍了react-native ListView下拉刷新上拉加载实现。分享给大家,具体如下:

先看效果图

react-native ListView下拉刷新上拉加载实现代码

下拉刷新

React Native提供了一个组件可以实现下拉刷新方法RefreshControl

使用方法

<ListView
 refreshControl={
 <RefreshControl
 refreshing={this.state.refreshing}
 onRefresh={this._onRefresh.bind(this)}
 />
 }
 //...
</ListView>

在视图加载的时候的时候,将refreshing设置为true,数据加载完成设置为false即可

上拉加载

利用ListView里的onEndReached方法实现,ListView在滚动到最后一个Cell的时候,会触发onEndReached方法

先在ListView里添加一个Footer

render() {
 const FooterView = this.state.loadMore ?
 <View style={styles.footer}>
 <Text style=>加载更多...</Text>
 </View> : null;
 return <ListView
 refreshControl={
 <RefreshControl
  refreshing={this.state.refreshing}
  onRefresh={this._onRefresh.bind(this)}
 />
 }
 style={[styles.listView]}
 dataSource={ds.cloneWithRows(this.state.dataSource)}
 enableEmptySections={true}
 renderRow={this._renderRow.bind(this)}
 onEndReachedThreshold={5}
 onEndReached={this._onEndReached.bind(this)}
 renderFooter={() => FooterView}
 />
 }

在方法_onEndReached里将Footer显示出来,在数据加载完成之后,再隐藏掉Footer

_onEndReached() {
 this.setState({
 loadMore: true,
 pageNo: this.state.pageNo + 1
 });
 this._fetchData();
 }

说明

ListView里还设置了一个参数onEndReachedThreshold这个参数与onEndReached配合使用,它的意思是:像素的临界值,该属性和onEndReached配合使用,因为onEndReached滑动结束的标志是以该值作为判断条件的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
js动态拼接正则表达式的两种方法
Mar 04 Javascript
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
jQuery中get和post方法传值测试及注意事项
Aug 08 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
Jun 07 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
浅谈angularJS的$watch失效问题的解决方案
Aug 11 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
vue-cli 打包使用history模式的后端配置实例
Sep 20 Javascript
微信小程序制作表格的方法
Feb 14 Javascript
解决ionic和angular上拉加载的问题
Aug 03 #Javascript
ES6学习教程之Map的常用方法总结
Aug 03 #Javascript
微信小程序之电影影评小程序制作代码
Aug 03 #Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
Aug 03 #Javascript
微信小程序-滚动消息通知的实例代码
Aug 03 #Javascript
es6 字符串String的扩展(实例讲解)
Aug 03 #Javascript
浅谈pc端rem字体设置的问题
Aug 03 #Javascript
You might like
留言板翻页的实现详解
2006/10/09 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
Python基于回溯法解决01背包问题实例
2017/12/06 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python进度条的制作代码实例
2019/08/31 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
简单了解python数组的基本操作
2019/11/26 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
工程造价管理专业大专生求职信
2013/10/06 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
小学生安全保证书
2015/05/09 职场文书
redis实现排行榜功能
2021/05/24 Redis