Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class PaginationScrollListener extends RecyclerView.OnScrollListener {
- private int previousTotalItemCount = 0;
- private boolean loading = true;
- @Override
- public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
- super.onScrollStateChanged(recyclerView, newState);
- }
- @Override
- public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
- super.onScrolled(recyclerView, dx, dy);
- //we don't interested in scroll up
- if (dy <= 0) {
- return;
- }
- LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
- int totalItemCount = layoutManager.getItemCount();
- int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition();
- if (loading && totalItemCount > previousTotalItemCount) {
- loading = false;
- previousTotalItemCount = totalItemCount;
- }
- if (!loading && lastVisibleItemPosition == (totalItemCount - 1)) {
- loading = true;
- loadMore();
- }
- }
- public abstract void loadMore();
- }
Add Comment
Please, Sign In to add comment