Android 在recyclerview底部实现加载更多数据时,为什么要加载多次?

Android 在recyclerview底部实现加载更多数据时,为什么要加载多次?,android,android-recyclerview,Android,Android Recyclerview,我实现了以下代码。它是有效的,但我检索它的次数比一次多,这会在我的数据中造成许多重复。我如何让它只运行一次检索更多数据 final LinearLayoutManager layoutManager=(LinearLayoutManager)getLayoutManager(); recyclerView.setOnScrollListener(新的recyclerView.OnScrollListener(){ 布尔加载=真; @凌驾 已填空的公共空间(RecyclerView Recycl

我实现了以下代码。它是有效的,但我检索它的次数比一次多,这会在我的数据中造成许多重复。我如何让它只运行一次检索更多数据

final LinearLayoutManager layoutManager=(LinearLayoutManager)getLayoutManager();
recyclerView.setOnScrollListener(新的recyclerView.OnScrollListener(){
布尔加载=真;
@凌驾
已填空的公共空间(RecyclerView RecyclerView、int dx、int dy){
int pastVisibleItems、visibleItemCount、totalItemCount;
visibleItemCount=layoutManager.getChildCount();
totalItemCount=layoutManager.getItemCount();
pastVisibleItems=layoutManager.findFirstVisibleItemPosition();
如果(装载){
如果((visibleItemCount+pastVisibleItems)>=totalItemCount){
加载=假;
//从internet检索更多数据
加载=真;
}
}
}

});原来下面的算法更好

private int previousTotal=0;
私有布尔加载=真;
私有int visibleThreshold=5;
int firstVisibleItem、visibleItemCount、totalItemCount;
mrecycleView.setOnScrollListener(新的RecycleView.OnScrollListener(){
@凌驾
已填空的公共空间(RecyclerView RecyclerView、int dx、int dy){
super.onScrolled(recyclerView、dx、dy);
visibleItemCount=mRecyclerView.getChildCount();
totalItemCount=mLayoutManager.getItemCount();
firstVisibleItem=mLayoutManager.findFirstVisibleItemPosition();
如果(装载){
如果(totalItemCount>previousTotal){
加载=假;
previousTotal=totalItemCount;
}
}
如果(!loading&&(totalItemCount-visibleItemCount)