我已经使用 ItemKeyedDataSource 实现了新的 PagedListAdapter。我的列表包含带有点赞按钮的提要项目。单击“赞”按钮应刷新该项目。
要在单击类似按钮时刷新我的列表项,我会更新 Firestore 后端中的状态,并在我的 ItemKeyedDataSource 上调用 invalidate。但这将刷新我的整个列表,同时跳回我的列表顶部。
我不确定这是否是正常行为,所以我去调试和检查我的 DiffUtil.ItemCallback 是问题所在。但是这两种方法(areItemsTheSame 和 areContentsTheSame)永远不会被调用。
那么在 DataSource 上调用 invalidate 是触发单个项目更新的方法吗?DiffUtil 是否会帮助我在更新后跟踪我在列表中的位置,还是我看错了方向?