android - 检查 RecyclerView 是否需要滚动

标签 android scroll android-recyclerview linearlayoutmanager

我有一个回调,在通过 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/

相关文章:

android - RecyclerView 直到滚动后才显示

android - recycler 查看项目装饰,getItemOffsets 仅在最后添加的项目上调用

android - Facebook Android SDK, "Unrecognized ' com.facebook.platform.protocol.PROTOCOL_ACTION' extra : 'com.facebook.platform.action.request.LOGIN_DIALOG' "

android - 从 jni 访问 ArrayList 的元素

android - 为什么当我点击后退按钮时我的 Activity 会重置?

android - 如何去掉 CheckBox 右边不需要的空格?

javascript - 在 anchor 上显示/ overflow hidden div

swift - NavigationBar 奇怪的额外空白

css - 强制浏览器始终水平滚动?

android - 如何使用express编写recyclerview拖放的测试用例