我们如何改变使用 Paging 3 android 加载的项目?

Kul*_*hal 7 pagination android android-architecture-components android-paging android-architecture-paging

我正在从网络加载帖子,为此我正在使用Paging 3,但现在的问题是我的列表项包含“喜欢/不喜欢”按钮,假设单击“喜欢”那么我如何更新该项目的数据而不重新加载整个数据集?

我已阅读此android-pagedlist-updates,但似乎这是针对较旧的 Paging 2 或 1,那么在Paging 3中实现此目的的完美方法是什么

dla*_*lam 0

在 Paging3 中,您仍然需要依靠PagingSource.invalidate提交更新,这与其说是关于不变性,不如说是关于拥有单一事实来源。

一般来说,正确的方法是更新支持数据集并调用invalidate,这将触发 REFRESH + DiffUtil ,这不会导致任何 UI 更改,但保证如果该页面被删除并重新获取,加载的页面仍然会保持最新状态。最简单的方法是使用已内置自失效功能的 PagingSource 实现(如 Room 提供的),只需更新喜欢/不喜欢按钮的相应行 onClick。

有一个开放的错误跟踪工作,以支持使用 Flow<> 对列表进行频繁、精细的更新,如果这是您的用例,您可以在此处关注: https: //issuetracker.google.com/160232968