2016-05-19 9 views
0

EndlessRecyclerOnScrollListenerを使ってページネーションを実装しました。特定のシナリオでは、ページ番号をリセットする必要があるので、私はresetValues()メソッドを作成しました。しかし、このメソッドをアクティビティクラスから呼び出す方法はわかりません。エンドレススクロールリスナーアンドロイドはページ番号をアクティビティからリセットします

public abstract class EndlessRecyclerOnScrollListener extends RecyclerView.OnScrollListener { 
     public static String TAG = EndlessRecyclerOnScrollListener.class.getSimpleName(); 

     private int previousTotal = 0; // The total number of items in the dataset after the last load 
     private boolean loading = true; // True if we are still waiting for the last set of data to load. 
     private int visibleThreshold = 0; // The minimum amount of items to have below your current scroll position before loading more. 
     int firstVisibleItem, visibleItemCount, totalItemCount; 

     private int current_page = 1; 

     private LinearLayoutManager mLinearLayoutManager; 

     public EndlessRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager,boolean isfromversion) { 
      this.mLinearLayoutManager = linearLayoutManager; 
      Log.e("isversionendless",isfromversion+""); 
      if(isfromversion) 
      { 
       resetValues(); 
      } 


     } 

     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 

      visibleItemCount = recyclerView.getChildCount(); 
      totalItemCount = mLinearLayoutManager.getItemCount(); 
      firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition(); 

      if (loading) { 
       if (totalItemCount > previousTotal) { 
        loading = false; 
        previousTotal = totalItemCount; 
       } 
      } 
      if (!loading && (totalItemCount - visibleItemCount) 
        <= (firstVisibleItem + visibleThreshold)) { 
       // End has been reached 

       // Do something 
       current_page++; 

       onLoadMore(current_page); 

       loading = true; 
      } 
     } 

     public void resetValues(){ 
      previousTotal = 0; 
      loading = true; 
      visibleThreshold = 1; 
      firstVisibleItem = 0; 
      visibleItemCount = 0; 
      totalItemCount = 0; 
     } 


     public abstract void onLoadMore(int current_page); 
    } 
+1

このプロジェクトはEndless Recyclerview https://github.com/ahmadaghazadeh/EndlessRecyclerviewを実装しています –

答えて

0
EndlessRecyclerOnScrollListener scrollListener=new EndlessRecyclerOnScrollListener(
      mGridLayoutManager) { 
     @Override 
     public void onLoadMore(int current_page) { 
      // do somthing... 
       loadMoreData(current_page); 
     } 

    }; 

    recyclerView.setOnScrollListener(scrollListener); 

あなたが値をリセットしたいときに、単に以下のようにメソッドを呼び出します。

scrollListener.resetValues(); 
関連する問題