我正在使用 RecyclerView 和 ScrollListener:
mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener()
{
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState)
{
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
{
super.onScrolled(recyclerView, dx, dy);
// Do my logic
}
});
当我用手指滚动时,滚动监听器触发正常。
但是当我以编程方式滚动时,就像这样:
mRecyclerView.scrollToPosition(LAST_POSITION);
滚动侦听器未触发。
我遇到了同样的问题并找到了解决方法,即在布局管理器中使用 smoothScrollToPosition 。该方法触发滚动监听器。所以基本上这就是我曾经拥有的:
recyclerView.scrollToPosition(recyclerAdapter.getItemCount() - 1);
现在我改成这样:
recyclerView.getLayoutManager().smoothScrollToPosition(recyclerView, null, recyclerAdapter.getItemCount() - 1);
它对我来说工作得很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)