12

NestedScrollViewの末尾にEndlessRecyclerViewがあります。 EndlessRecyclerViewは、ユーザーがrecyclerViewの一番下にスクロールすると、より多くのデータをロードすることを意味します。これはすでに実装されており、他のところで働いていますが、NestedScrollViewの中にrecyclerViewを配置すると、OnScrollListenerイベントは発生しません。RecyclerView NestedScrollView内のScrollListener

XML設計:

<NestedScrollView> 

    <Other views/> 

    <EndlessRecyclerView/> 

</NestedScrollView > 

コード:

recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 
      // This is never fired! Here is where I implement the logic of EndlessRecyclerView 
     } 
    }); 

私は上記の場合のために、スクロールイベントを取得するにはどうすればよいですか?

私はお互いの中に2つのスクロール可能なビューを持っていることは良くありません。しかし、2つのスクロール可能なビューを持たずに上記のケースをどうやって作るのですか?

私はすでにこのリンクをたどったが、それは動作しません:scroll event for recyclerview inside scrollview android

答えて

19

NestedScrollView下にあるリサイクルビューの無限スクロールを実現するために、あなたは「NestedScrollView.OnScrollChangeListener」

nestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> { 
      if(v.getChildAt(v.getChildCount() - 1) != null) { 
       if ((scrollY >= (v.getChildAt(v.getChildCount() - 1).getMeasuredHeight() - v.getMeasuredHeight())) && 
         scrollY > oldScrollY) { 
         //code to fetch more data for endless scrolling 
       } 
      } 
     }); 

を使用することができますにここでv.getChildCount() -1無限のスクロールを実装するリサイクラビューを提供する必要があります。

また、scrollY > oldScrollYは、ページがスクロールしていることを確認します。

参考:私はあなたが二列にそれを作る、それを解決するために、真剣に一日を過ごすNestedScrollView.OnScrollChangeListener

+0

恐ろしい男。これは素晴らしいです...しかし、今私はどのように私はサーバー上で新しいレコードをフェッチすることができます目に見えるアイテムを得ることができますか? –

+0

@RahulVats上記のコードでは、if条件が満たされた場合、ユーザーが完全にスクロールし、最後の項目が表示されることを意味します。 100個のアイテムがあり、最初に20個のアイテムが読み込まれているとします。上記の条件が満たされている場合は、サーバーから次のデータセット(例:21-40)をダウンロードできます。とにかく、あなたは実際のクエリのためにこのリンクを参照することができます:https://stackoverflow.com/questions/40726438/android-detect-when-the-last-item-in-a-recyclerview-is-visible?noredirect=1&lq= 1 – Govind

関連する問題