我有一个回调,在通过 LinearLayoutManager.smoothScrollToPosition()
以编程方式滚动到 RecyclerView 的某个项目后触发。用户点击一个项目,右侧的项目将滚动到 RecyclerView 的顶部。我将 LinearLayoutManager 子类化,让它始终吸附到项目的顶部。
这在触发滚动事件的情况下有效,但是当 RecyclerView 已经处于正确位置时,我没有得到 onScrollStateChanged
回调,因为没有发生滚动。有没有办法获得那个事件?比如预先决定 RecyclerView 是否需要滚动?
最佳答案
希望以下代码对您有所帮助
if(LinearLayoutManager.findFirstCompletelyVisibleItem() == yourDesiredPosition) {
//do your stuff
} else {
LinearLayoutManager.scrollToPositionWithOffset(yourDesiredPosition, offset);
//onScrollStateChanged would be trigger then.
}
关于android - 检查 RecyclerView 是否需要滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38242432/