【发布时间】:2019-10-30 02:20:55
【问题描述】:
我有一个屏幕,其中项目/单元格以 2x2 网格形式设计。我想要做的是当RecyclerView 向上/向下滚动时,我想在项目可见性/印象上触发 API。
因为我的清单非常庞大
例如场景是,
- 在第一次加载时,它会显示例如6 (3x2) 个项目/单元格。然后,为所有这 6 个项目触发 API,因为它们是完全可见的。
- 向上滚动时,例如它显示了另外 2 个项目,并且上面/前 2 个项目超出了屏幕,因此,它应该为新的 2 个项目触发 API。
这样我想完成整个列表的遍历并在新找到的项目上调用API。
我尝试的是,
- 下面的 GridLayoutManager 方法对我不起作用,因为它们每个都给出不同的值,而且似乎是随机的
int findFirstVisibleItemPosition();
int findFirstCompletelyVisibleItemPosition();
int findLastVisibleItemPosition();
int findLastCompletelyVisibleItemPosition();
- 在
Rect | getGlobalVisibleRect()的帮助下检查屏幕上View的边界,但这在onScrolled() | OnScrollStateChanged()内部也不起作用
请建议我可以获得完全可见单元格的正确索引的方法。
【问题讨论】:
标签: android android-recyclerview android-view gridlayoutmanager onscrolllistener