如何使用数据绑定 record/identify Android 中所有已查看的 RecyclerView 项目

How to record/identify all viewed RecyclerView items in Android with databinding

我当前的 Android 应用程序通过 RecyclerView 显示项目列表。

我有一个要求,必须准确记录所有查看过的项目,以便报销。

我已经尝试记录由 onBindViewHolder 处理的每个项目,但是这种方法并不准确,因为项目似乎在可见之前就已经绑定了。

我的应用程序使用 databinding 来填充我所有的应用程序 Views,我觉得必须有一种方法可以准确地只记录我的 [=15] 中实际上 "viewed" 的那些项目=] 我的用户而不是列表 viewHolder.

中 "bound" 的项目

我不想向用户收取他们实际上没有看过的项目。

有没有我可以采用的 100% 准确的方法?

我建议您创建一个 HashMap/SparseArray 来保存每个视图项的 ID,以便能够将它们保存在数据库中。

每当调用您的 onBindViewHolder 时,您都可以在 sqlite 数据库中保留代表项目本身的其他 ID。

但您应该记住,每当用户开始滚动时都会调用 onBindViewHolder,因此此 HashMap 将首先更新,您不会错过任何视图项目。