Recyclerview:完全可见时回调视图

时间:2015-11-10 13:40:16

标签: android listener android-recyclerview

这是用例:

我有一份包含5种食物形象的回收列表:

  1. 西瓜
  2. 芒果
  3. 苹果
  4. 番石榴
  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时调用。

    附加可以在视图实际显示之前。

    我可以想到一种非常低效的方法:

    1. 在您的recyclerview

    2. 上设置RecyclerView.OnScrollListener
    3. mLinearLayoutManager.findFirstCompletelyVisibleItemPosition()方法中调用onScrolled。检查返回等于3的int。

    4. 每次回收者视图滚动时,都会进行数百次计算。

1 个答案:

答案 0 :(得分:3)

正如您所提到的,您实际上应该使用onScrolled()方法处理它。 findFirstCompletelyVisibleItemPosition()方法非常有效,正在进行的计算不会影响大多数设备,包括低端设备。

作为旁注,我认为你想要的是findLastCompletelyVisibleItemPosition()方法。

去过那里,做到了: - )