попробуйте использовать этот прослушиватель прокрутки с вашим переработчиком.
При загрузке большего количества элементов разместите свою логику для загрузки большего количества элементов
isLastPage вернет true, если нет элементов для загрузки
isLoading будет иметь значение true, когда вы извлекаете данные, и false, когда вы извлекаете данные.
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
/**
* Pagination class to add more items to the list when reach the last item.
*/
public abstract class PaginationScrollListener extends RecyclerView.OnScrollListener {
LinearLayoutManager layoutManager;
/**
* Supporting only LinearLayoutManager for now.
*
* @param layoutManager
*/
public PaginationScrollListener(LinearLayoutManager layoutManager) {
this.layoutManager = layoutManager;
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int visibleItemCount = layoutManager.getChildCount();
int totalItemCount = layoutManager.getItemCount();
int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
if (!isLoading() && !isLastPage()) {
if (visibleItemCount + firstVisibleItemPosition >= totalItemCount
&& firstVisibleItemPosition >= 0
// && totalItemCount >= ClothesFragment.itemsCount
) {
loadMoreItems();
}
}
}
protected abstract void loadMoreItems();
public abstract boolean isLastPage();
public abstract boolean isLoading();
}
добавьте это в свой список повторных проверок
public boolean isLastPage;
public boolean isLoading;
recyclerView.addOnScrollListener(new PaginationScrollListener(your layoutManager) {
@Override
protected void loadMoreItems() {
isLoading=true;
loadMoreItems();
}
@Override
public boolean isLastPage() {
return isLastPage;
}
@Override
public boolean isLoading() {
return isLoading;
}
});
void loadMoreItems() {
isLoading=false;
after fetching your data assuming you have fetched list in your recyclerview
adapter assuming your recyclerview adapter is rvAdapter
rvAdapter.addData(list);
}
Теперь в вашем адаптере представления повторных обращений добавьте следующий метод
Здесь список - это список, который направляет ваше мнение о переработчике
void addData(ArrayList<Object> list) {
int size = this.list.size();
this.list.addAll(list);
int sizeNew = this.list.size();
notifyItemRangeChanged(size, sizeNew);
}