Recyclerview支持下拉刷新、上拉加载,包括线性布局、网格布局和 流布局

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28779083/article/details/73740106

SwiperefreshRecyclerview

支持下拉刷新、上拉加载的 Recyclerview,包括线性布局、网格布局和 流布局。

只需要在adapter中绑定数据,其他的交给我,就是这么6。

To get a Git project into your build:

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}      

Step 2. Add the dependency

dependencies {     
  compile 'com.github.mtjsoft:SwiperefreshRecyclerview:1.1.0'
}

GitHub 源码: SwiperefreshRecyclerview源码

使用 Demo: SwiperefreshRecyclerviewDemo

线性布局:

线性布局

网格布局:

网格布局

流式布局:

流式布局

1、activity 继承 HHBaseListRecyclerViewActivity:

①getListDataInThread()异步获取数据。
②setLayoutManagerType()方法即可实现 线性布局、网格布局 和 流布局。

/**
     * 异步获取数据
     *
     * @param pageIndex 页码
     * @param callBack  异步获取数据后的回调 
     * callback.onResponse(list);
     * callback.onFailure(string);
     */
    @Override
    protected void getListDataInThread(int pageIndex, final  NetCallBack<DataModel> callBack) {
    }
    /**
     * 设置recyclerview 的adapter
     */
    @Override
    protected HHBaseRecyclerViewAdapter<DataModel> instanceAdapter(List<DataModel> list) {
       //return 自己的adapter
        return new MyAdapterDemo(getContext(), list);
    }
    /**
     * 设置item之间的距离
     *
     * @return
     */
    @Override
    protected int setItemDecoration() {
        return 10;
    }

    /**
     * 设置每页获取数据的大小
     *
     * @return
     */
    @Override
    protected int setPageSize() {
        return 30;
    }

    /**
     * 设置LayoutManager类型,默认2
     * 【
     * 0:LinearLayoutManager ,
     * 1:GridLayoutManager,
     * 2:StaggeredGridLayoutManager
     * 】
     * 设置1、2时,setCount()方法,设置列数,默认2
     *
     * @return
     */
    @Override
    protected int setLayoutManagerType() {
        return 2;
    }

    /**
     * 设置每行列数,默认2
     */
    @Override
    protected int setCount() {
        return 2;
    }

2、Fragment 继承 HHBaseListRecyclerViewFragment ,使用方法与 Activity 继承HHBaseListRecyclerViewActivity的一致。

用fragment来实现,可以嵌套在任意activity里使用。

3、adapter 继承 HHBaseRecyclerViewAdapter :

通过下面两个方法就可以实现view复用,数据绑定,简单高效

    /**
     * 设置item布局
     */
    @Override
    protected int getViewHolderLaoutId() {
        return R.layout.item;//自己的item.xml
    }
    /**
     * 绑定数据
     */
    @Override
    protected void bindViewHolderData(HHBaseViewHolder holder, int position) {
    //通过holder得到控件,通过position得到对应数据,进行数据绑定
    }

4、activity 和 fragment 中可以自主设置以下等方法。

    /**
     * 设置是否下拉刷新
     */
    setIsRefresh(Boolean refresh)

    /**
     * 设置是否加载更多
     *
     * @param load_more true是
     */
    setIsLoadMore(Boolean load_more)


    /**
     * 设置底部加载更多的loading布局,不设置时,使用默认布局
     *
     * @param footView
     */
    setFootView(View footView)

    /**
     * 获取列表数据
     */
    getPagerListData()

    /**
     * 获取recyclerview
     */
    getRecyclerView()

    /**
     * 刷新页面数据
     */
    onRefresh()

    /**
     * 设置页码
     *
     * @param pageIndex
     */
    setPageIndex(int pageIndex)

    /**
     * 当前页码
     */
    getPageIndex()

猜你喜欢

转载自blog.csdn.net/qq_28779083/article/details/73740106