Android Paging Libray 架构组件中 PagingDataAdapter 和 PagedListAdapter 的区别
Difference between PagingDataAdapter and PagedListAdapter in Android Paging Libray Architecture Component
它们在后台如何工作?
我对 PagedListAdapter 比较熟悉,但对 PagingDataAdapter(paging 3) 不熟悉。
PagingDataAdapter 的主要用途是什么,与 PagedListAdapter 的区别
PagingDataAdapter
是 PagedListAdapter
的 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()
它们在后台如何工作?
我对 PagedListAdapter 比较熟悉,但对 PagingDataAdapter(paging 3) 不熟悉。 PagingDataAdapter 的主要用途是什么,与 PagedListAdapter 的区别
PagingDataAdapter
是 PagedListAdapter
的 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()