触底刷新实现
使用BaseQuickAdapter,在适配器中实现 LoadMoreModule即可,如下加上即可,无需多写代码
以下为分页实现:
视图中
// 获取加载更多模块
loadMoreModule = blogAdapter.getLoadMoreModule();
loadMoreModule.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore() {
//此方法会执行很多次,要判断
if (blogCount == 0 || blogCount < (long) pageNum *pageSize) {
loadMoreModule.loadMoreEnd(); //加载结束
return;
}
blog_recycleView.postDelayed(new Runnable() {
@Override
public void run() {
// 触发加载更多数据的操作
Log.d("触底", "加载");
explorePresenter.getBlogs(pageNum, pageSize); //网络请求
}
}, 1000);
}
});
public void showBlogs(List<Blog> blogList, long blogCount) {
this.blogCount = blogCount; //最大数量,用于判断是否加载完成
blogAdapter.addData(blogList);
loadMoreModule.loadMoreComplete(); // 标记加载更多完成
pageNum++; //记录当前页码
}
参考:https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/1704