我正在将分页更新到3.0版本,因为我使用的是干净的架构(这里重要的是我的repos和usesCases所在的核心和所有android框架类所在的应用模块之间的分离。)但是,我使用了两个模型类(一个用于查询房间中的数据,例如:
data class ExampleEntity(
@Expose
@ColumnInfo(name = INTERVENTION_ID_COLUMN_NAME)
@SerializedName(INTERVENTION_ID_COLUMN_NAME)
val interventionId: String?,
@Expose
@ColumnInfo(name = SITE_NAME_COLUMN_NAME)
@SerializedName(SITE_NAME_COLUMN_NAME)
val siteName: String?
}另一个是在核心模块和useCase中使用,而不会在所有...ex中隐含房间数据库的依赖关系:
data class Example(
@Expose
@SerializedName(INTERVENTION_ID_COLUMN_NAME)
val interventionId: String?,
@Expose
@SerializedName(SITE_NAME_COLUMN_NAME)
val siteName: String?
}后来在databseImplementation中我将实体类映射到核心类,在分页2中可以映射页面列表,现在我似乎不能访问Entity的PagingData对象,只能添加(headers,seperators...etc),我如何才能克服这个设计难题?
发布于 2020-11-02 23:12:27
正如您从以下documentation中看到的,可以在项目到达您的ViewModel之前在PagingData中对其进行转换。
在您的存储库中,应该有类似以下内容的内容
val flow = Pager(PagingConfig(pageSize = 20)) {
ExamplePagingSource(backend, query)
}.flow其思想是像这样映射flow的内容
flow.mapLatest { pagingData ->
pagingData.map { entity ->
// map to from ExampleEntity to Entity here
}
}https://stackoverflow.com/questions/64573115
复制相似问题