【发布时间】:2017-08-11 12:48:20
【问题描述】:
我正在尝试使用 recyclerview 实现无限滚动,它工作正常。但是,我注意到当内容大小小于屏幕高度时,永远不会调用 onScrolled。我想在向下滚动时加载更多内容,但我无法检测到向下滚动手势,因为从未调用过 onScrolled,因此我无法获得 dy 值。我想知道:
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 以使内容大小超过屏幕高度
标签: android scroll android-recyclerview scrollview endlessscroll