PullToRefresh第三方刷新控件使用总结
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第三方刷新控件使用总结相关推荐
- 浅谈Android列表ListView下拉刷新控件的实现(一)
ListView下拉刷新的功能到处可见,很多app客户端都存在,比如QQ空间好友动态下拉刷新,网易新闻内容下拉刷新等.相信很多人已经把这个功能运用的很溜,妥妥的吧,接下就来实现一下功能,有个不爽的一点 ...
- Android之一起玩转下拉刷新控件
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/50830639 本文出自:[顾林海的博客] ##前言 下拉刷新控件,想必 ...
- android多个下拉控件,Android实现支持所有View的通用的下拉刷新控件
下拉刷新对于一个app来说是必不可少的一个功能,在早期大多数使用的是chrisbanes的PullToRefresh,或是修改自该框架的其他库.而到现在已经有了更多的选择,github上还是有很多体验 ...
- Android 怎么实现支持所有View的通用的下拉刷新控件
转载请标明出处: http://blog.csdn.net/u010386612/article/details/51372696 本文出自:[AItsuki的博客] 下拉刷新对于一个app来说是必不 ...
- SmartRefreshLayout刷新控件
最近更换了刷新控件 说一下今天新换的控件 github地址 https://github.com/scwang90/SmartRefreshLayout 先看看说明文档Android智能下拉刷新框架 ...
- Android自定义控件实战——下拉刷新控件终结者:PullToRefreshLayout
说到下拉刷新控件,网上版本有很多,很多软件也都有下拉刷新功能.有一个叫XListView的,我看别人用过,没看过是咋实现的,看这名字估计是继承自ListView修改的,不过效果看起来挺丑的,也没什么扩 ...
- Android仿苹果版QQ下拉刷新实现(一) ——打造简单平滑的通用下拉刷新控件
前言: 因为公司人员变动原因,导致了博主四个月没有动安卓,一直在做IOS开发,如今接近年前,终于可以花一定的时间放在安卓上了.好了,废话不多说,今天我们要带来的效果是苹果版本的QQ下拉刷新.首先看一下 ...
- 【LOL盒子】-iOS自带下拉刷新控件【UIRefreshControl】
下拉刷新 -> 在TableView中添加UIRefreshControl -> 下拉刷新 -> 刷新中 (做网络请求,数据重组) -> 请求结束,数据重组结束 ...
- android google 下拉刷新 csdn,android SwipeRefreshLayout google官方下拉刷新控件
下拉刷新功能之前一直使用的是XlistView很方便我前面的博客有介绍 SwipeRefreshLayout是google官方推出的下拉刷新控件使用方法也比较简单 今天就来使用下SwipeRefres ...
最新文章
- 创建bdlink密码是数字_如何创建实际上是安全的密码
- 这里有一张中国的数字化地图,请查收
- 只有当前用户或管理员能登录到此计算机,当前登录的用户没有管理员权限。请重新以管理员身份登录,或与您的pc管理员联系。...
- Oracle asm aix盘,AIX/HP UX/LINUX上ORACLE ASM添加磁盘
- PHP实现简单文件上传系统
- python写二进制大文件,如何将文件写入二进制文件,或在大文件中编辑单行– Python...
- C语言的变参函数设计
- vba 自动排序_Excel表格自动排序,神了!
- mini_c编译器的简单代码逻辑
- 汽车的android怎么使用方法,汽车安卓投屏怎么用 其实投屏方法很简单
- Redis缓存读写策略
- 怎么离线发布全国谷歌高清卫星影像地图瓦片
- 栈——后入先出的数据结构(LIFO)
- 神雕侠侣手游服务器维护,《神雕侠侣》2020年6月18日更新维护新服开启公告
- MTK65XX平台充电调试总结 (转载)
- linux内核2.6.3x--Network device support
- 腾讯欲与中国功夫联手干掉360
- LocalBroadcastManager已被废弃
- Java + JS实现微信分享功能
- 判断101到200有多少素数,并输出所有素数