【发布时间】:2016-02-11 09:53:30
【问题描述】:
这是用例:
我有一个包含 5 个食品图像视图的回收站视图列表:
- 西瓜
- 芒果
- 桃子
- 苹果
- 番石榴
当用户滚动经过时,当桃子图像视图在回收器视图中完全可见时,我想记录输出 (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.OnScrollListener在
onScrolled方法中调用mLinearLayoutManager.findFirstCompletelyVisibleItemPosition()。检查返回等于 3 的 int。
recyclerview 每次滚动,都会执行数百次计算。
【问题讨论】:
-
也许 toWindow() 和 toRecyclerview 不一样。
-
@Simon:你是怎么解决这个问题的?只调用一次?
标签: android listener android-recyclerview