Android Paging Libray 架构组件中 PagingDataAdapter 和 PagedListAdapter 的区别

Difference between PagingDataAdapter and PagedListAdapter in Android Paging Libray Architecture Component

它们在后台如何工作?

我对 PagedListAdapter 比较熟悉,但对 PagingDataAdapter(paging 3) 不熟悉。 PagingDataAdapter 的主要用途是什么,与 PagedListAdapter 的区别

PagingDataAdapterPagedListAdapter 的 Paging3 替代品,它首先从头开始重建为 Kotlin + Coroutines,并支持同步响应 LoadState + Errors(Paging2 没有这些内置概念)、反应式转换(包括分隔符、通过 ConcatAdapter 实现的 LoadState 感知页眉/页脚),以及与 Paging2 相比,在简化的 API 之上请求重复数据删除。

要使用 PagingDataAdapter,它需要通过 Pager 连接到其他 Paging3 构造,但所有这些构造都考虑到了 Paging2 的向后兼容性,因此您可以逐步迁移来自现有项目。例如,Pager 需要 () -> PagingSource<Key, Value>,但存在 DataSource.Factory.asPagingSourceFactory() 以实现兼容性。

我强烈建议您查看:

如果有人正在从 Paging2 -> Paging3 迁移并且像疯子一样搜索 toPagingSourceFactory() 它已被重命名为 asPagingSourceFactory() 文档还没有反映它。

省去一些挖掘工作,直接使用 asPagingSourceFactory()