【问题标题】:How to get fully visible cells/items in recyclerview?如何在 recyclerview 中获得完全可见的单元格/项目?
【发布时间】:2019-10-30 02:20:55
【问题描述】:

我有一个屏幕,其中项目/单元格以 2x2 网格形式设计。我想要做的是当RecyclerView 向上/向下滚动时,我想在项目可见性/印象上触发 API。

因为我的清单非常庞大

例如场景是,

  1. 在第一次加载时,它会显示例如6 (3x2) 个项目/单元格。然后,为所有这 6 个项目触发 API,因为它们是完全可见的。
  2. 向上滚动时,例如它显示了另外 2 个项目,并且上面/前 2 个项目超出了屏幕,因此,它应该为新的 2 个项目触发 API。

这样我想完成整个列表的遍历并在新找到的项目上调用API。

我尝试的是,

  1. 下面的 GridLayoutManager 方法对我不起作用,因为它们每个都给出不同的值,而且似乎是随机的

int findFirstVisibleItemPosition();

int findFirstCompletelyVisibleItemPosition();

int findLastVisibleItemPosition();

int findLastCompletelyVisibleItemPosition();

  1. Rect | getGlobalVisibleRect() 的帮助下检查屏幕上View 的边界,但这在onScrolled() | OnScrollStateChanged() 内部也不起作用

请建议我可以获得完全可见单元格的正确索引的方法。

【问题讨论】:

    标签: android android-recyclerview android-view gridlayoutmanager onscrolllistener


    【解决方案1】:

    尝试为onScrolled() | onScrollStateChanged() 的动作创建单独的线程。它会解决你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 2014-09-22
      相关资源
      最近更新 更多