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上拉刷新和下拉刷新相关推荐

  1. Android 智能上拉加载下拉刷新框架之SmartRefreshLayout

    1.说明: SmartRefreshLayout的目标是打造一个强大,稳定,成熟的下拉刷新框架,并集成各种的炫酷.多样.实用.美观的Header和Footer.它不只是支持所有的View,还支持多层嵌 ...

  2. 自定义listview完成上拉刷新,下拉加载的功能,重写ontouchevent方法

    最 近做的类似于微博的项目中,有个Android功能要使用到listview的向下拉刷新来刷新最新消息,向上拉刷新(滑动分页)来加载更多. 新浪微博就是使用这种方式的典型. 当用户从网络上读取微博的时 ...

  3. php微信小程序向下滑动,微信小程序功能实现:上滑加载下拉刷新

    本篇文章给大家带来的内容是关于微信小程序功能实现:上滑加载下拉刷新,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 之前谈到文章列表的数据加载,是一次性全部加载,这样是不友好的.这章介 ...

  4. ionic上拉加载-下拉刷新

    ionic上拉加载-下拉刷新 1.上拉加载 <ion-infinite-scroll on-infinite="loadOlderStories()" distance=&q ...

  5. Mint-ui中loadmore(上拉加载下拉刷新)组件在ios中滑动会触发点击事件的解决方法...

    bug说明: Mint-ui中loadmore(上拉加载下拉刷新)组件 在 使用fastclick的情况下 ,在ios设备中滑动会触发点击事件: 解决方法: 我是按需引入,去项目中找到loadmore ...

  6. php mescroll,mescroll.js上拉加载下拉刷新组件使用详解

    本文实例为大家分享了上拉加载下拉刷新组件mescroll.js的具体代码,供大家参考,具体内容如下 使用注意事项: 1.引入的时候出问题及时看官方给出的解决方案(基本上都必须看): 2.react中一 ...

  7. 教你如何使用SwipeRefreshLayout来构建一个上拉加载下拉刷新框架

    前言: 基本上所以的移动端应用都有Listview(当然RecyclerView也一样),那必不可少的都会嵌入一个上拉加载下拉刷新的功能.这样能大大的减少用户的流量消耗,同样对于用户也有更好的用户体验 ...

  8. uniapp实现上拉刷新,下拉加载

    上拉刷新,下拉加载这个功能实际上在我们的应用当中使用范围是很广的,比如说商城中心在展示商品的时候就可以使用下拉加载这样的功能,那么如何实现呢? 首先遇到这个功能我就去搜插件市场了.经过我下载了不少的插 ...

  9. ios 上拉加载 下拉刷新

    在一款 App应用中有的时候会用到上拉加载下拉刷新的功能,本人觉得SVPullToRefresh很好用(可以用在UIScrollView上,包括UITableview和UICollectionView ...

最新文章

  1. python列表的实现原理_Python列表对象实现原理
  2. netbios 网上基本输入输出系统 简介
  3. MySQL数据库从windows迁移到linux
  4. python学习笔记9-函数1
  5. spark广播变量 和 累加器
  6. 中国什么时候才能全面普及 1 Gbps 下行的网速?
  7. shell 整理(36)===写斐波那契数列
  8. 提高sql性能的方法_三种提高T-SQL性能的方法
  9. [20180503]珅与分隔符.txt
  10. mrc20温控f1什么意思_精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
  11. js add方法_爬虫必备:Python 执行 JS 代码 —— PyExecJS、PyV8、Js2Py
  12. 方立勋_30天掌握JavaWeb_Web开发入门
  13. dll中封装MFC(VC2012)资源--自定义一个复用的登录界面
  14. Rufus——启动盘创建工具
  15. 使用Java读写dbf文件【附源代码】
  16. 戴尔笔记本把计算机弄到桌面,戴尔笔记本电脑可不可以把程序放在桌面上-戴尔笔记本电脑怎么样...
  17. 浅谈javascript面向对象理解
  18. PreTranslateMessage()
  19. Nginx页面报错404及解决办法
  20. 2020最新智能客服|聊天机器人算法、架构及应用分享

热门文章

  1. 我对类和结构的一点理解
  2. WPF and Silverlight 学习笔记(十九):WPF更换主题
  3. 大数据之-Hadoop3.x_MapReduce_序列化案例需求分析---大数据之hadoop3.x工作笔记0096
  4. C++提高部分_C++类模板与继承---C++语言工作笔记091
  5. Elasticsearch--分词-自定义扩展词库---全文检索引擎ElasticSearch工作笔记022
  6. 大数据_Hbase-shell命令_(补充_hbase存数据只增加不删除_只会适时删除)---Hbase工作笔记0006
  7. Netty工作笔记0042---Netty入门--编写客户端
  8. 大数据之_Hadoop工作笔记001---Hadoop3.1.2在Centos7上安装_单机版
  9. java零碎要点012---linux Centos下编译、运行、调试java程序
  10. VB.NET在线升级程序源代码,可以独立使用