如何在recyclerview中获得完全可见的单元格/项目?

时间:2019-06-16 00:44:30

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

我有一个屏幕,其中项目/单元格以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. View的帮助下检查Rect | getGlobalVisibleRect()在屏幕上的边界,但是在onScrolled() | OnScrollStateChanged()内部也无法正常工作

请提出一种方法,使我可以获得正确可见的细胞的正确索引。

1 个答案:

答案 0 :(得分:-1)

尝试为onScrolled() | onScrollStateChanged()的操作创建单独的线程。它将解决您的问题。