个人原创,转载请注明出处http://blog.csdn.net/u012402124/article/details/78210639
2020.02.08更新
较多内容,详情见Github:https://github.com/oynix/wraprecyclerview
2018年10月25日更新
让大家花费时间看文章却没有解决需求,随着bug的增多内心的愧疚感逐渐增强,但几个月前的代码确实看不下去,bug也不想解决了,于是直接重写了。
实现思路未变,依旧是监听滑动,根据位置做出处理,但实现方式做了修改,相比于之前的方式使用起来更加简单。
暂时只支持LinearLayout,不支持GridLayoutManager和StaggeredLayoutManager
使用方式
-
布局文件,如下,不多说:
<com.oy.wrapperrecyclerview.widget.xRecyclerView android:id="@+id/gank_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:overScrollMode="never"/>
-
Adapter不能再继承
RecyclerView.Adapter
,需要继承自xRecyclerView.xAdapter
,同时实现三个方法,getxItemCount
、onCreatexViewHolder
和onBindxViewHolder
,按照实现RecyclerView.Adapter
中的getItemCount
、onCreateViewHolder
和onBindViewHolder
的方式即可。 -
将2中
xRecyclerView.xAdapter
的实现类的实例通过xRecyclerView.setAdapter
设置进去。 -
通过
xRecyclerView.setListener
监听下拉刷新和上拉加载动作。 -
下拉刷新或上拉加载完成后需要调用
xRecyclerView.stopRefreshing
或xRecyclerView.stopLoadingMore
来更新显示状态。
一共这5步,简化了不少。因为还不支持GridLayoutManager
所以把原来看图片的网格布局改成线性的了,不过话说回来看大图里的妹子真不错 😛。
代码已更新到Github,如有问题:oynix@foxmail.com
以下为原文
纵观多数App,下拉刷新和上拉加载更多是很常见的功能,但是谷歌官方只有一个SwipeRefreshLayout用来下拉刷新,上拉加载更多还要自己做。
基于RecyclerView简单封装了这两个操作,下拉刷新支持LinearLayoutManager、GridLayoutManager和StaggeredGridLayoutManager;上拉加载更多只支持前两者。
话不多说先上效果图 数据来自干货集中营
(下拉刷新)
(上拉加载更多 – LinearLayoutManager)
(上拉加载更多 – GridLayoutManager)
(一) 使用方式,很简单 如下:
- 1. 下拉刷新 3步走
1.1 布局文件
// 用SwipeRefreshLayout包裹RecyclerView
<android.support.v4.widget.SwipeRefreshLayout