1、基本介绍

1)github地址:  https://github.com/chrisbanes/Android-PullToRefresh
2)支持ListView,GridView的刷新操作(上拉刷新、下拉刷新);
3)此控件包含很多自定义的选项;
4)当滚动到底部时,可以进行监听;设置自定义的上拉刷新脚;

2、api文档: wrapper包装器

//getRefreshableView() 获取PullToRefresh所包装的控件ListView actualListView = mPullRefreshListView.getRefreshableView(); //PullToRefresh 在布局中的使用:自定义控件的形式 全类名:<com handmark="" pulltorefresh="" library="" pulltorefreshlistview=""> //找到控件PullToRefreshListView mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list); //设置刷新监听 实现onRefresh()方法mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<listview>() {@Override.//实现onRefresh()方法public void onRefresh(PullToRefreshBase<listview> refreshView) {String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);// Update the LastUpdatedLabel //设置最后的更新时间的refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);//在这里进行调用接口、分页加载 }});//滑动到ListView的最底部:End of List!mPullRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {@Overridepublic void onLastItemVisible() {Toast.makeText(PullToRefreshListActivity.this, "End of List!", Toast.LENGTH_SHORT).show();}});//数据改变了刷新适配器mAdapter.notifyDataSetChanged();//调用刷新完成之后这个方法 Call onRefreshComplete when the list has been refreshed. mPullRefreshListView.onRefreshComplete();//设置刷新模式setMode();//设置刷新监听:两种接口的实现方式 如果只想实现上拉刷新或者下拉刷新setOnRefreshListener(); new OnRefreshListener()与new OnRefreshListener2()//下拉刷新mListItems.addFirst("Added after refresh..."); mAdapter.notifyDataSetChanged();//数据改变了刷新适配器mPullRefreshListView.onRefreshComplete();//建立一个全局的集合,存储所有获取到的数据 </com>

3、attrs 自定义属性的理解
//一、刷新模式
   <!-- Mode of Pull-to-Refresh that should be used -->
        <attr name="ptrMode">
            <flag name="disabled" value="0x0" />
            <flag name="pullFromStart" value="0x1" />  只支持下拉刷新
            <flag name="pullFromEnd" value="0x2" />    只支持上拉刷新
            <flag name="both" value="0x3" />           支持两种刷新模式
            <flag name="manualOnly" value="0x4" />
            <!-- These last two are depreacted -->
            <flag name="pullDownFromTop" value="0x1" />
            <flag name="pullUpFromBottom" value="0x2" />
        </attr>

//二、拖动时动画风格
<!-- Style of Animation should be used displayed when pulling. -->
        <attr name="ptrAnimationStyle">
            <flag name="rotate" value="0x0" />   旋转
            <flag name="flip" value="0x1" />     浮动

</attr>

4、使用步骤:
一、把官方文档中的布局文件copy进来
二、实例化控件,获取pulltorefresh控件

三、获取pulltorefresh包装的刷新控件,然后为其设置适配器

5、核心代码:

getAllFragmentManager.queryAllFragment(new GetAllFragmentManager.GetAllFragmentDataListener() {@Overridepublic void getAllFragmentDataSuccess(Wants wants) {ll_loading.setVisibility(View.GONE);ll_all_fragment_lv.setVisibility(View.VISIBLE);list = wants.getList();//把每次获取到的数据添加到集合里面listMore.addAll(list);//如果是第一页数据,设置适配器if (page == 1) {needCenterAdapter = new NeedCenterAdapter(getActivity(), listMore);lv.setAdapter(needCenterAdapter);//如果不是第一页数据,适配器调用刷新方法 (list和adapter绑定的)} else {needCenterAdapter.notifyDataSetChanged();//调用刷新完成的方法lv_all.onRefreshComplete();}}@Overridepublic void getAllFragmentDataFail(String msg) {ToastUtils.showShort(msg);}}, getActivity(), map);

滑动到最后一条自动去请求数据

lv_all.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {@Overridepublic void onLastItemVisible() {page++;//滑动到底部自动去请求数据getNeedData(page); }});

//直接把demo中的布局文件copy到项目里面,特别有用的

ptr:ptrAnimationStyle="rotate" ptr:ptrDrawable="@mipmap/pull_to_refresh_icon" ptr:ptrHeaderBackground="@null" ptr:ptrHeaderTextColor="@color/color_white"

PullToRefresh第三方刷新控件使用总结相关推荐

  1. 浅谈Android列表ListView下拉刷新控件的实现(一)

    ListView下拉刷新的功能到处可见,很多app客户端都存在,比如QQ空间好友动态下拉刷新,网易新闻内容下拉刷新等.相信很多人已经把这个功能运用的很溜,妥妥的吧,接下就来实现一下功能,有个不爽的一点 ...

  2. Android之一起玩转下拉刷新控件

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/50830639 本文出自:[顾林海的博客] ##前言 下拉刷新控件,想必 ...

  3. android多个下拉控件,Android实现支持所有View的通用的下拉刷新控件

    下拉刷新对于一个app来说是必不可少的一个功能,在早期大多数使用的是chrisbanes的PullToRefresh,或是修改自该框架的其他库.而到现在已经有了更多的选择,github上还是有很多体验 ...

  4. Android 怎么实现支持所有View的通用的下拉刷新控件

    转载请标明出处: http://blog.csdn.net/u010386612/article/details/51372696 本文出自:[AItsuki的博客] 下拉刷新对于一个app来说是必不 ...

  5. SmartRefreshLayout刷新控件

    最近更换了刷新控件  说一下今天新换的控件 github地址 https://github.com/scwang90/SmartRefreshLayout 先看看说明文档Android智能下拉刷新框架 ...

  6. Android自定义控件实战——下拉刷新控件终结者:PullToRefreshLayout

    说到下拉刷新控件,网上版本有很多,很多软件也都有下拉刷新功能.有一个叫XListView的,我看别人用过,没看过是咋实现的,看这名字估计是继承自ListView修改的,不过效果看起来挺丑的,也没什么扩 ...

  7. Android仿苹果版QQ下拉刷新实现(一) ——打造简单平滑的通用下拉刷新控件

    前言: 因为公司人员变动原因,导致了博主四个月没有动安卓,一直在做IOS开发,如今接近年前,终于可以花一定的时间放在安卓上了.好了,废话不多说,今天我们要带来的效果是苹果版本的QQ下拉刷新.首先看一下 ...

  8. 【LOL盒子】-iOS自带下拉刷新控件【UIRefreshControl】

    下拉刷新  -> 在TableView中添加UIRefreshControl  -> 下拉刷新   -> 刷新中 (做网络请求,数据重组)   ->  请求结束,数据重组结束 ...

  9. android google 下拉刷新 csdn,android SwipeRefreshLayout google官方下拉刷新控件

    下拉刷新功能之前一直使用的是XlistView很方便我前面的博客有介绍 SwipeRefreshLayout是google官方推出的下拉刷新控件使用方法也比较简单 今天就来使用下SwipeRefres ...

最新文章

  1. 创建bdlink密码是数字_如何创建实际上是安全的密码
  2. 这里有一张中国的数字化地图,请查收
  3. 只有当前用户或管理员能登录到此计算机,当前登录的用户没有管理员权限。请重新以管理员身份登录,或与您的pc管理员联系。...
  4. Oracle asm aix盘,AIX/HP UX/LINUX上ORACLE ASM添加磁盘
  5. PHP实现简单文件上传系统
  6. python写二进制大文件,如何将文件写入二进制文件,或在大文件中编辑单行– Python...
  7. C语言的变参函数设计
  8. vba 自动排序_Excel表格自动排序,神了!
  9. mini_c编译器的简单代码逻辑
  10. 汽车的android怎么使用方法,汽车安卓投屏怎么用 其实投屏方法很简单
  11. Redis缓存读写策略
  12. 怎么离线发布全国谷歌高清卫星影像地图瓦片
  13. 栈——后入先出的数据结构(LIFO)
  14. 神雕侠侣手游服务器维护,《神雕侠侣》2020年6月18日更新维护新服开启公告
  15. MTK65XX平台充电调试总结 (转载)
  16. linux内核2.6.3x--Network device support
  17. 腾讯欲与中国功夫联手干掉360
  18. LocalBroadcastManager已被废弃
  19. Java + JS实现微信分享功能
  20. 判断101到200有多少素数,并输出所有素数

热门文章

  1. 浅谈Everdroid流程化机器人设计器
  2. Java垃圾收集学习笔记
  3. split函数python统计英文单词_Python实现统计英文单词个数及字符串分割代码
  4. 计算机图形学实验报告 裁剪,计算机图形学-实验报告三-图形裁剪算法
  5. MySQL数据库时间和jdbc查询时间相差12小时问题解决
  6. 学习黑客技术打败黑客才是突破技术巅峰!
  7. 灵狐插件与IDEA的集成
  8. MBA-day31 绝对值的几何意义
  9. 小白用Python抓取豆瓣高评分喜剧电影
  10. 2021-05-31 - Laravel - 搭建开发环境 - 学习/实践