Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.73 KB | None | 0 0
  1.     public Observable<Integer> getScrollObservable(RecyclerView recyclerView, boolean withPreload) {
  2.         return Observable.create(publisher -> {
  3.             final RecyclerView.OnScrollListener listener = new RecyclerView.OnScrollListener() {
  4.  
  5.                 private int lastVisibleItem;
  6.                 private int totalItemCount;
  7.  
  8.                 @Override
  9.                 public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
  10.                     super.onScrollStateChanged(recyclerView, newState);
  11.                 }
  12.  
  13.                 @Override
  14.                 public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
  15.                     super.onScrolled(recyclerView, dx, dy);
  16.  
  17.                     if (dy > 0) {
  18.                         final LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
  19.  
  20.                         totalItemCount = layoutManager.getItemCount();
  21.                         lastVisibleItem = layoutManager.findLastVisibleItemPosition();
  22.  
  23.                         if (!mIsLoading) {
  24.                             if ((lastVisibleItem > totalItemCount - 5) && mLastVisibleItem < totalItemCount) {
  25.                                 mIsLoading = true;
  26.                                 mLastVisibleItem = totalItemCount;
  27.                                 publisher.onNext(totalItemCount);
  28.                             }
  29.                         }
  30.                     }
  31.                 }
  32.             };
  33.  
  34.             if (withPreload) {
  35.                 publisher.onNext(0);
  36.             }
  37.  
  38.             recyclerView.addOnScrollListener(listener);
  39.             publisher.setCancellable(() -> recyclerView.removeOnScrollListener(listener));
  40.         });
  41.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement