私はrecyclerviewで無限のスクロールを実装しようとしています。しかし、コンテンツのサイズが画面の高さよりも小さい場合、onScrolledは呼び出されません。私はスクロールダウン時にもっと読み込みたいですが、onScrolledが呼び出されずにdy値を取得できないため、スクロールダウンジェスチャを検出できません。私は不思議に思っていた:コンテンツが画面の高さよりも小さい場合、無限スクロールrecyclerview onScrolledがトリガーされない
1)この場合、スクロール方向を取得する方法 2)このような状況の場合のベストプラクティスは何ですか?サービスコールごとに設定された数のアイテムが取得されています。返されたアイテムの数が画面に表示されない場合はどうなりますか?
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
{
int lastVisibleItemPosition, visibleItemCount, totalItemCount;
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
{
super.onScrolled(recyclerView, dx, dy);
if(dy>0)
{
visibleItemCount = recyclerLayoutManager.getChildCount();
totalItemCount = recyclerLayoutManager.getItemCount();
lastVisibleItemPosition = recyclerLayoutManager.findLastVisibleItemPosition();
if (lastVisibleItemPosition >= totalItemCount)
{
if (!loading && dy>0 && moreToload)
{
loadMore();
}
}
}
}
});
ありがとうございます!あなたが試すことができ
ListViewに他のアイテムを読み込んで、コンテンツのサイズが画面の高さを超えるようにしてください – GuilhermeFGL