网上大多数 RecyclerView.OnScrollListener的判断如下:
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
lastVisibleItemPosition = mLinearLayoutManager.findLastVisibleItemPosition();
visibleItemCount = recyclerView.getChildCount();
totalItemCount = mLinearLayoutManager.getItemCount();
firstVisibleItemPosition = mLinearLayoutManager.findFirstVisibleItemPosition();
lastVisibleItemPosition = mLinearLayoutManager.findLastVisibleItemPosition();
if(isLoading){
if(totalItemCount > previousTotal){
isLoading = false;
previousTotal = totalItemCount;
}
}
// if (!isLoading && totalItemCount-visibleItemCount <= firstVisibleItemPosition ){ //(1)
if (!isLoading && lastVisibleItemPosition ==totalItemCount-1){ //(2)
//加载更多逻辑
}
在RecyclerView.OnScrollListener中,不论是方式(1)还是(2),在item数据不足以充满屏幕时都会自动加载更多,直到充满屏幕才停下,求教如何在item数据不足一屏幕时判断加载更多逻辑