//上滑加载更多
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
//#####################################################################################
//方法1
// GridLayoutManager lm = (GridLayoutManager) recyclerView.getLayoutManager();
// int totalItemCount = recyclerView.getAdapter().getItemCount();
// int lastVisibleItemPosition = lm.findLastVisibleItemPosition();
// int visibleItemCount = recyclerView.getChildCount();
// if (newState == RecyclerView.SCROLL_STATE_IDLE
// && lastVisibleItemPosition == totalItemCount - 1
// && visibleItemCount > 0) {
// //加载更多
// initFruits();
// //adapter.notifyDataSetChanged();
// adapter.notifyItemInserted(adapter.getItemCount());
// }
//#####################################################################################
//方法2
//获取管理器 上面用的什么类型的布局管理器,这里就写什么布局管理器
GridLayoutManager gm = (GridLayoutManager) recyclerView.getLayoutManager();
//获取最后一个数据的位置
int lastItem = gm.findLastVisibleItemPosition();
//如果上面的条件成立,那么就调用解析类方法刷新一次,获取更多的数据,我这里不是最优的判断,但是经测试能用且没出什么问题
if (newState == RecyclerView.SCROLL_STATE_IDLE && adapter.getItemCount() >= lastItem){
//获取更多数据
initFruits();
//每次添加数据后都刷新一下适配器
adapter.notifyItemInserted(adapter.getItemCount());
}
//#####################################################################################
}
});
}
分享一种RecyclerView滑动到底部自动加载的实现方案 - 简书
Android的RecyclerView列表加载更多_Sakura_huatex的博客-CSDN博客_recyclerview加载更多