我从Internet加载数据,正在分页。
我使用此代码加载更多数据:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if(!recyclerView.canScrollVertically(1)&&loading==false&&postson==false){
loading=true;
lastitem+=20;
loaddata(lastitem);
}
}
});
但这仅在回收者视图到达底部时才起作用,我认为这可能会使用户感到困惑。 我想在剩下5个项目时加载更多数据。
该怎么做?
答案 0 :(得分:1)
检查布局管理器的项目计数(使您的布局管理器成为全局),可能是线性布局管理器,然后从那里比较两个,就像这样:
@Override
public void onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
if (!isRequesting) {
int visiblePicturePosition = linearLayoutManager.findLastVisibleItemPosition()
int totalItems = linearLayoutManager.getItemCount()
if (totalItems - visiblePicturePosition <= 5) {
//Do what you want here
}
}