Chr*_*ris 14 android android-architecture-components
我需要将域对象映射到UI对象并使用实时分页列表进行显示.
我试图映射LiveData<PagedList<X>>到LiveData<PagedList<Y>>并映射PositionalDataSource<X>到PositionalDataSource<Y>,但由于包私有和私有限制,如果不将我的代码放在android.arch.paging包中并使用反射或使用修改版本的分页库,这些似乎都是不可能的.
有没有人知道如何在不诉诸这种不良方法的情况下做到这一点?
(请注意,如果分页库API使用接口而不是抽象基类,这将不会成为问题 - 这将允许包装任何分页列表/数据源并添加适当的映射.)
edy*_*edy 14
DataSource和DataSource.Factory有mapBy()和mapPageBy(),在这种情况下可以帮助你.要小心,因为这两个会限制"Y" - 结果列表的大小.
如果结果的大小与原始列表的大小不同,则DataSource将抛出异常.
小智 6
对我来说以下工作:
val dataSourceFactory =
cache.getDataSourceFactory(params)
.map {
convertXToY(it)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1476 次 |
| 最近记录: |