框架引用
先在 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);
}
}
刷新效果图:
![](https://img.haomeiwen.com/i4153663/df5e4cf3a3f25094.jpeg)
官方网站:www.recyclerview.org
Demo下载地址:http://fir.im/s91g
网友评论