HeaderView、FooterView、刷新、加载更多,支持自定义组装的RecyclerView组件

来源:互联网 发布:ios微信无法连接网络 编辑:程序博客网 时间:2024/06/01 07:23

转载请注明出处:
http://blog.csdn.net/aa464971/article/details/74972045
Android交流群:146262062

Github地址:
https://github.com/dengyuhan/SwipeRefreshView

SwipeRefreshView

HeaderView、FooterView、刷新、加载更多,支持自定义组装的RecyclerView组件

效果

示例apk

结构

RecyclerHeaderHelper
       可以给RecyclerView提供 增删多个HeaderView、FooterView,开关动画的能力

RecyclerLoadMoreHelper
       继承RecyclerHeaderHelper,在它的基础上又增加了加载更多的能力

PagingHelper
       拥有分页逻辑,可以获取当前页码和逻辑增长

SwipeRefreshRecyclerView
       拥有RecyclerHeaderHelper,RecyclerLoadMoreHelper,PagingHelper的能力,一种预设的RecyclerView

这里只介绍SwipeRefreshRecyclerView的用法,更多可以看例子

SwipeRefreshRecyclerView

Gradle

compile 'com.dyhdyh.widget:swiperefreshview:1.0.3.1'

默认配置

<com.dyhdyh.widget.swiperefresh.view.SwipeRefreshRecyclerView        android:id="@+id/swipe"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:refreshEnabled="true"        app:loadMoreEnabled="true"        app:pageCount="10"        app:schemeColor="@color/colorAccent"        app:startPage="0" />

获取实际RecyclerView对象

rv.getView()

获取实际Adapter对象

rv.getInnerAdapter()

监听

//rv.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener());//rv.setOnLoadMoreListener(new OnLoadMoreListener());rv.setOnRefreshListener(new OnRefreshListener2() {    @Override    public void onRefresh(boolean refresh) {        if (refresh) {            //刷新        } else {            //加载更多        }    }});

设置自定义加载更多样式

//参考LoadMoreViewrv.setLoadMoreFooter(loadMoreFooter);

加载更多状态

rv.setLoadMoreState(LoadMoreFooter.State.GONE);rv.setLoadMoreState(LoadMoreFooter.State.LOADING);rv.setLoadMoreState(LoadMoreFooter.State.THE_END);rv.setLoadMoreState(LoadMoreFooter.State.ERROR);

刷新完成

rv.setRefreshComplete();
可以参考例子RecyclerViewActivity
阅读全文
0 0
原创粉丝点击