SuperSwipeRefreshLayout 一个功能强大的自定义下拉刷新组件
2015-08-25 17:53
465 查看
SuperSwipeRefreshLayout
一个功能强大的自定义下拉刷新组件。Why?
下拉刷新这种控件,想必大家用的太多了,比如使用很多的XListView等。最近,项目中很多列表都是使用ReyclerView实现的,代替了原有的ListView,原有下拉刷新方式遭到挑战。本来Google推出的SwipeRefreshLayout已经能够满足大部分的需求了。然而,由于其定制性较差,下拉刷新的样式无法修改,而且被嵌套的View也无法跟随手指的滑动而滑动。基于以上考虑,定制自己强大的SuperSwipeRefreshLayout。Feature
非侵入式,对原来的ListView、RecyclerView没有任何影响,用法和SwipeRefreshLayout类似。可自定义头部View的样式,调用setHeaderView方法即可
支持更多:RecyclerView,ListView,ScrollView,GridView等等。
被包含的View(RecyclerView,ListView etc.)可跟随手指的滑动而滑动
默认是跟随手指的滑动而滑动,也可以设置为不跟随:setTargetScrollWithLayout(false)
回调方法更多
比如:onRefresh() onPullDistance(int distance)和onPullEnable(boolean enable)
开发人员可以根据下拉过程中distance的值做一系列动画。
How to use
step 1
<net.mobctrl.views.SuperSwipeRefreshLayout android:id="@+id/swipe_refresh" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </net.mobctrl.views.SuperSwipeRefreshLayout>
step 2
swipeRefreshLayout = (SuperSwipeRefreshLayout) findViewById(R.id.swipe_refresh); swipeRefreshLayout.setHeaderView(createHeaderView());// add headerView swipeRefreshLayout .setOnPullRefreshListener(new OnPullRefreshListener() { @Override public void onRefresh() { //TODO 开始刷新 } @Override public void onPullDistance(int distance) { //TODO 下拉距离 } @Override public void onPullEnable(boolean enable) { //TODO 下拉过程中,下拉的距离是否足够出发刷新 } });
step 3
create your header viewswipeRefreshLayout.setHeaderView(createHeaderView());// add headerView /** * create Header View */ private View createHeaderView(){ //TODO 创建下拉刷新头部的View样式 }
跟手滑动设置
setTargetScrollWithLayout(false/true);//default trueswipeRefreshLayout.setTargetScrollWithLayout(true);
Support View
RecyclerView.ListView
SrcollView
GridView
etc.
Demo
效果后续
如有必要,可以增加上拉加载更多的功能。源码:
Github https://github.com/nuptboyzhb/SuperSwipeRefreshLayout源码分析
后续有时间更新相关文章推荐
- 完美实现Android ListView中的TextView的跑马灯效果
- android上改变listView的选中颜色
- flex 控件的重要属性
- Delphi7中Listview的常用功能汇总
- Delphi控件ListView的属性及使用方法详解
- web下载的ActiveX控件自动更新
- WinForm实现按名称递归查找控件的方法
- C#中父窗口和子窗口之间控件互操作实例
- android中ListView数据刷新时的同步方法
- Android提高之ListView实现自适应表格的方法
- Android中实现水平滑动(横向滑动)ListView示例
- MFC中动态创建控件以及事件响应实现方法
- WinForm自定义函数FindControl实现按名称查找控件
- WinForm拖拽控件生成副本的解决方法
- C#实现ListView选中项向上或向下移动的方法
- ASP.NET动态添加用户控件的方法
- ASP.NET的HtmlForm控件学习及Post与Get的区别概述
- WinForm实现移除控件某个事件的方法
- C#分屏控件用法实例
- C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF