这是用例:
我有一份包含5种食物形象的回收列表:
当用户滚动浏览时,我想在recyclelerview中完全看到peach imageview时记录输出(Log.e(TAG, "Peach shown!")
。
在recyclerview中,当视图完全可见时是否会调用回调?我几乎想将方法findFirstCompletelyVisibleItemPosition ()
转换为回调方法:http://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.html#findFirstCompletelyVisibleItemPosition()
我读了这个帖子:
RecyclerView - callback when view is no longer visible并查看了此处的文档http://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnChildAttachStateChangeListener.html,但我发现在以下情况下调用了回调方法onChildViewAttachedToWindow()
:
视图附加到RecyclerView时调用。
附加可以在视图实际显示之前。
我可以想到一种非常低效的方法:
在您的recyclerview
RecyclerView.OnScrollListener
在mLinearLayoutManager.findFirstCompletelyVisibleItemPosition()
方法中调用onScrolled
。检查返回等于3的int。
每次回收者视图滚动时,都会进行数百次计算。
答案 0 :(得分:3)
正如您所提到的,您实际上应该使用onScrolled()
方法处理它。 findFirstCompletelyVisibleItemPosition()
方法非常有效,正在进行的计算不会影响大多数设备,包括低端设备。
作为旁注,我认为你想要的是findLastCompletelyVisibleItemPosition()
方法。
去过那里,做到了: - )