我有以下代码:
val history: Flow<PagingData<Any>> = Pager(PagingConfig(pageSize = 10)) {
PaginationBaseDataSource(apiService)
}.flow
.cachedIn(viewModelScope)
当前显示的是没有任何附加参数的项目列表。这行得通......但现在我希望根据用户可以在前端更改的某些参数查询此列表,假设我希望添加参数 3 作为查询。
val history: Flow<PagingData<Any>> = Pager(PagingConfig(pageSize = 10)) {
PaginationBaseDataSource(apiService, 3)
}.flow
.cachedIn(viewModelScope)
问题是……我如何即时设置这个查询参数?假设用户使用了 6,而不是 3,然后使用了 9。我怎样才能做到这一点?
非常感谢
最佳答案
只要您的参数之一发生变化,您就会想要发出一个新的 PagingData。实现此目的的流式方式可能如下所示:
val queryFlow = MutableStateFlow(value = 3)
val pagingDataFlow = queryFlow.flatMapLatest { query ->
Pager(...) { MyPagingSource(query) }.flow.cachedIn(viewModelScope)
}
关于android - 在 Kotlin 中使用新参数的分页 3.0 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64692260/