BaseRecyclerViewAdapterHelper 使用记录(一)

框架引用

先在 build.gradle(Project:XXXX) 的 repositories 添加:

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

然后在 build.gradle(Module:app) 的 dependencies 添加:

dependencies {
            compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
    }
build.gradle(Project:XXXX) 文件下的repositories有两个,一个是buildscript下面的,一个是allprojects下面的,要配置到allprojects下面才是对的

实际使用

初始化:

 mReadIndexAdapter = new ReadIndexAdapter(loadWorkList());
 mReadIndexAdapter.openLoadAnimation(BaseQuickAdapter.SLIDEIN_BOTTOM);
 getView().getRecyclerView().setAdapter(mReadIndexAdapter);       
//加载更多            
 mReadIndexAdapter.setOnLoadMoreListener(this, getView().getRecyclerView());         
// 下拉刷新           
getView().getSwipeRefrshlayout().setOnRefreshListener(this);           
//点击事件            
mReadIndexAdapter.setOnItemClickListener(this);  
          
         

模拟数据填充

    List<WorkInfo> workInfos = new ArrayList<>();

        for (int i = 0; i < 10; i++) {

            WorkInfo workInfo = new WorkInfo();
            workInfo.title = "文章标题" + (i + 1);
            workInfo.description = "文章描述" + (i + 1);

            workInfos.add(workInfo);
        }

        return workInfos;

加载更多(模拟了3次请求 第三次空数据表示没有数据)

setData(false, mNextRequestPage == 3 ? null :loadWorkList());

下拉刷新

mNextRequestPage = 1;
mReadIndexAdapter.setEnableLoadMore(false);//这里的作用是防止下拉刷新的时候还可以上拉加载
setData(true, loadWorkList());
mReadIndexAdapter.setEnableLoadMore(true);
getView().getSwipeRefrshlayout().setRefreshing(false);

数据填充

private void setData(boolean isRefresh, List data) {

        mNextRequestPage++;
        final int size = data == null ? 0 : data.size();
        if (isRefresh) {
            mReadIndexAdapter.setNewData(data);
        } else {
            if (size > 0) {
                mReadIndexAdapter.addData(data);
            }
        }
        if (size < PAGE_SIZE) {
            //第一页如果不够一页就不显示没有更多数据布局
            mReadIndexAdapter.loadMoreEnd(isRefresh);
        } else {
            mReadIndexAdapter.loadMoreComplete();
        }
    }

适配:

public class ReadIndexAdapter extends BaseQuickAdapter<WorkInfo,BaseViewHolder>{


    public ReadIndexAdapter(@Nullable List<WorkInfo> data) {
        super(R.layout.item_read_index,data);
    }

    @Override
    protected void convert(BaseViewHolder helper, WorkInfo item) {

        helper.setText(R.id.tvTitle,item.title)
                .setText(R.id.tvDescription,item.description);
    }
}

刷新效果图:

《BaseRecyclerViewAdapterHelper 使用记录(一)》 基础上拉加载,下载刷新

官方网站:www.recyclerview.org
Demo下载地址:http://fir.im/s91g

点赞