Android PullToRefreshListView上拉刷新和下拉刷新
PullToRefreshListView实现上拉和下拉刷新有两个步骤:
1、设置刷新方式
pullToRefreshView.setMode(PullToRefreshBase.Mode.BOTH);//两端刷新pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);//上拉刷新pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);//下拉刷新
2、如果是上拉刷新或者下拉刷新需要实现OnRefreshListener接口;如果是两端刷新,则setOnRefreshListener需要实现OnRefreshListener2接口
两端刷新实现:
pullToRefreshView = (PullToRefreshListView) view.findViewById(R.id.pull_to_refresh_listview);pullToRefreshView.setMode(PullToRefreshBase.Mode.BOTH);//两端刷新 // pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);//上拉刷新 // pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);//下拉刷新pullToRefreshView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {@Overridepublic void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {refreshType = REFRESH_TYPE_DOWN;refreshView.getLoadingLayoutProxy().setRefreshingLabel("正在加载");refreshView.getLoadingLayoutProxy().setPullLabel("下拉加载更多");refreshView.getLoadingLayoutProxy().setReleaseLabel("释放开始加载"); // refreshView.getLoadingLayoutProxy().setLastUpdatedLabel("最后加载时间:");// Do work to refresh the list here.new GetDataTask().execute();}@Overridepublic void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {refreshType = REFRESH_TYPE_UP;refreshView.getLoadingLayoutProxy().setRefreshingLabel("正在加载");refreshView.getLoadingLayoutProxy().setPullLabel("上拉加载更多");refreshView.getLoadingLayoutProxy().setReleaseLabel("释放开始加载"); // refreshView.getLoadingLayoutProxy().setLastUpdatedLabel("最后加载时间:");// Do work to refresh the list here.new GetDataTask().execute();}});
AsyncTask实现异步加载
private class GetDataTask extends AsyncTask<Void, Void, String[]> {@Overrideprotected String[] doInBackground(Void... params) {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}return new String[0];}@Overrideprotected void onPostExecute(String[] result) {// Call onRefreshComplete when the list has been refreshed. pullToRefreshView.onRefreshComplete();if(REFRESH_TYPE_DOWN == refreshType){Article article = new Article();article.setTitle("下拉刷新添加title");adapter.insert(article,0);//adapter是一个LinkedList}else if(REFRESH_TYPE_UP == refreshType){Article article = new Article();article.setTitle("上拉刷新添加title");adapter.add(article);}super.onPostExecute(result);}}
如果想实现更丰富的效果可修改布局文件参数,如:
<!--ptr:ptrDrawable="@drawable/default_ptr_flip"ptr:ptrAnimationStyle="flip" flip:翻转 rotate:旋转--><!-- ptr:ptrShowIndicator="true" 右上角 右下角出现箭头--><com.handmark.pulltorefresh.library.PullToRefreshListViewandroid:id="@+id/pull_to_refresh_listview"android:layout_height="fill_parent"android:layout_width="fill_parent"ptr:ptrShowIndicator="true"android:background="#CCC" />
Android PullToRefreshListView上拉刷新和下拉刷新相关推荐
- Android 智能上拉加载下拉刷新框架之SmartRefreshLayout
1.说明: SmartRefreshLayout的目标是打造一个强大,稳定,成熟的下拉刷新框架,并集成各种的炫酷.多样.实用.美观的Header和Footer.它不只是支持所有的View,还支持多层嵌 ...
- 自定义listview完成上拉刷新,下拉加载的功能,重写ontouchevent方法
最 近做的类似于微博的项目中,有个Android功能要使用到listview的向下拉刷新来刷新最新消息,向上拉刷新(滑动分页)来加载更多. 新浪微博就是使用这种方式的典型. 当用户从网络上读取微博的时 ...
- php微信小程序向下滑动,微信小程序功能实现:上滑加载下拉刷新
本篇文章给大家带来的内容是关于微信小程序功能实现:上滑加载下拉刷新,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 之前谈到文章列表的数据加载,是一次性全部加载,这样是不友好的.这章介 ...
- ionic上拉加载-下拉刷新
ionic上拉加载-下拉刷新 1.上拉加载 <ion-infinite-scroll on-infinite="loadOlderStories()" distance=&q ...
- Mint-ui中loadmore(上拉加载下拉刷新)组件在ios中滑动会触发点击事件的解决方法...
bug说明: Mint-ui中loadmore(上拉加载下拉刷新)组件 在 使用fastclick的情况下 ,在ios设备中滑动会触发点击事件: 解决方法: 我是按需引入,去项目中找到loadmore ...
- php mescroll,mescroll.js上拉加载下拉刷新组件使用详解
本文实例为大家分享了上拉加载下拉刷新组件mescroll.js的具体代码,供大家参考,具体内容如下 使用注意事项: 1.引入的时候出问题及时看官方给出的解决方案(基本上都必须看): 2.react中一 ...
- 教你如何使用SwipeRefreshLayout来构建一个上拉加载下拉刷新框架
前言: 基本上所以的移动端应用都有Listview(当然RecyclerView也一样),那必不可少的都会嵌入一个上拉加载下拉刷新的功能.这样能大大的减少用户的流量消耗,同样对于用户也有更好的用户体验 ...
- uniapp实现上拉刷新,下拉加载
上拉刷新,下拉加载这个功能实际上在我们的应用当中使用范围是很广的,比如说商城中心在展示商品的时候就可以使用下拉加载这样的功能,那么如何实现呢? 首先遇到这个功能我就去搜插件市场了.经过我下载了不少的插 ...
- ios 上拉加载 下拉刷新
在一款 App应用中有的时候会用到上拉加载下拉刷新的功能,本人觉得SVPullToRefresh很好用(可以用在UIScrollView上,包括UITableview和UICollectionView ...
最新文章
- python列表的实现原理_Python列表对象实现原理
- netbios 网上基本输入输出系统 简介
- MySQL数据库从windows迁移到linux
- python学习笔记9-函数1
- spark广播变量 和 累加器
- 中国什么时候才能全面普及 1 Gbps 下行的网速?
- shell 整理(36)===写斐波那契数列
- 提高sql性能的方法_三种提高T-SQL性能的方法
- [20180503]珅与分隔符.txt
- mrc20温控f1什么意思_精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
- js add方法_爬虫必备:Python 执行 JS 代码 —— PyExecJS、PyV8、Js2Py
- 方立勋_30天掌握JavaWeb_Web开发入门
- dll中封装MFC(VC2012)资源--自定义一个复用的登录界面
- Rufus——启动盘创建工具
- 使用Java读写dbf文件【附源代码】
- 戴尔笔记本把计算机弄到桌面,戴尔笔记本电脑可不可以把程序放在桌面上-戴尔笔记本电脑怎么样...
- 浅谈javascript面向对象理解
- PreTranslateMessage()
- Nginx页面报错404及解决办法
- 2020最新智能客服|聊天机器人算法、架构及应用分享
热门文章
- 我对类和结构的一点理解
- WPF and Silverlight 学习笔记(十九):WPF更换主题
- 大数据之-Hadoop3.x_MapReduce_序列化案例需求分析---大数据之hadoop3.x工作笔记0096
- C++提高部分_C++类模板与继承---C++语言工作笔记091
- Elasticsearch--分词-自定义扩展词库---全文检索引擎ElasticSearch工作笔记022
- 大数据_Hbase-shell命令_(补充_hbase存数据只增加不删除_只会适时删除)---Hbase工作笔记0006
- Netty工作笔记0042---Netty入门--编写客户端
- 大数据之_Hadoop工作笔记001---Hadoop3.1.2在Centos7上安装_单机版
- java零碎要点012---linux Centos下编译、运行、调试java程序
- VB.NET在线升级程序源代码,可以独立使用