我需要将域对象映射到 UI 对象并使用实时分页列表显示。
我试图映射 LiveData<PagedList<X>>
至 LiveData<PagedList<Y>>
和 map PositionalDataSource<X>
至 PositionalDataSource<Y>
,但由于包私有(private)和私有(private)限制,如果不将我的代码放在 android.arch.paging 包中并使用反射,或者使用分页库的修改版本,这两者似乎都是不可能的。
有谁知道有什么方法可以做到这一点而无需诉诸这种不受欢迎的方法吗?
(请注意,如果分页库 API 使用接口(interface)而不是抽象基类,这将不是问题 - 这将允许包装任何分页列表/数据源并添加适当的映射。)
最佳答案
DataSource 和 DataSource.Factory 有 mapBy()
和 mapPageBy()
,在这种情况下可以帮助您。请小心,因为这两个会限制“Y”结果列表的大小。
如果结果的大小与原始列表的大小不同,则 DataSource 将抛出异常。
关于android - 将 LiveData<PagedList<X>> 映射到 LiveData<PagedList<Y>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48872269/