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

版权声明:欢迎关注我的Github:https://github.com/dengyuhan,转载请注明出处,欢迎转载 https://blog.csdn.net/aa464971/article/details/74972045

转载请注明出处:
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 {
            //加载更多
        }
    }
});

设置自定义加载更多样式

//参考LoadMoreView
rv.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

猜你喜欢

转载自blog.csdn.net/aa464971/article/details/74972045