SuperSwipeRefreshLayout 一个功能强大的自定义下拉刷新组件
来源:互联网 发布:淘宝外贸尾单店 编辑:程序博客网 时间:2024/05/02 11:49
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 view
swipeRefreshLayout.setHeaderView(createHeaderView());// add headerView/** * create Header View */private View createHeaderView(){ //TODO 创建下拉刷新头部的View样式}
跟手滑动设置
- setTargetScrollWithLayout(false/true);//default true
swipeRefreshLayout.setTargetScrollWithLayout(true);
Support View
- RecyclerView.
- ListView
- SrcollView
- GridView
- etc.
Demo
效果
后续
如有必要,可以增加上拉加载更多的功能。
源码:
Github https://github.com/nuptboyzhb/SuperSwipeRefreshLayout
源码分析
后续有时间更新
2 0
- SuperSwipeRefreshLayout 一个功能强大的自定义下拉刷新组件
- 自定义下拉刷新组件SuperSwipeRefreshLayout
- 自定义组件,下拉刷新的ListView
- 自定义一个下拉刷新
- 一个功能强大的自定义SeekBar
- SuperSwipeRefreshLayout(非浸入式下拉刷新、上拉加载)
- 下拉刷新组件中嵌套ViewPager的一个手势冲突
- 提供一个简单可以自定义的下拉刷新实现
- View系列(1)--自定义一个ListView的下拉刷新
- 自定义下拉刷新的listview
- 自定义的下拉刷新SwipeRefreshLayout
- 自定义头部的下拉刷新
- 一个功能强大好用的图表组件Dundas Chart
- 一个功能强大超级好用的图表组件Dundas Chart
- 针对自定义组件上拉刷新下拉加载更多PullToRefreshView的分析(一)
- 针对自定义组件上拉刷新下拉加载更多PullToRefreshView的分析(二)
- 针对自定义组件上拉刷新下拉加载更多PullToRefreshView的分析(一)
- 可能是最in的React Native使用原生自定义下拉刷新组件
- 一个很吧帮的log库
- Java多线程面试问题集锦
- Android GridView属性集合
- 模板方法——对象行为模式
- win32(十四)
- SuperSwipeRefreshLayout 一个功能强大的自定义下拉刷新组件
- [微信JS-SDK]微信公众号JS开发之卡券领取功能详解
- Memcached之你真正理解LRU吗(4)
- linux下安装apache 及报错解答
- win32(十五)
- K&C 式样的函数定义
- mac下192.168.2.1引起的连接问题
- Ztree 相关.
- 合并两个递增的列表