Уведомление о конце скролинга RecyclerView

  1. import android.app.Activity;
  2. import android.support.v7.widget.RecyclerView;
  3.  
  4. public class LoadingListHelper {
  5.  
  6.     private Activity activity;
  7.     private RecyclerView.Adapter adapter;
  8.     private RecyclerView.LayoutManager layoutManager;
  9.     private LoadingListener loadingListener;
  10.  
  11.     public LoadingListHelper(Activity activity, RecyclerView recyclerView) {
  12.         this.activity = activity;
  13.         adapter = recyclerView.getAdapter();
  14.         layoutManager = recyclerView.getLayoutManager();
  15.         recyclerView.addOnScrollListener(onScrollListener);
  16.     }
  17.  
  18.     public void setScrollEndListener(LoadingListener loadingListener) {
  19.         this.loadingListener = loadingListener;
  20.     }
  21.  
  22.     private RecyclerView.OnScrollListener onScrollListener = new RecyclerView.OnScrollListener() {
  23.         @Override
  24.         public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
  25.             super.onScrolled(recyclerView, dx, dy);
  26.             if (layoutManager.findViewByPosition(adapter.getItemCount() - 1) != null) {
  27.                 if (loadingListener != null) {
  28.                     loadingListener.onScrolledToEnd();
  29.                 }
  30.             }
  31.         }
  32.     };
  33.  
  34.     public interface LoadingListener {
  35.         void onScrolledToEnd();
  36.     }
  37.  
  38. }
Может пригодится для реализации подгружаемых списков. Пример.
  1. new LoadingListHelper(getActivity(), mRecyclerView)
  2.                 .setScrollEndListener(new LoadingListHelper.LoadingListener() {
  3.                     @Override
  4.                     public void onScrolledToEnd() {
  5.                         // TODO: load new data or something else
  6.                     }
  7.                 });

Реклама

Мы в соцсетях

tw tg yt gt