Kotlin 中带有新参数的 Paging 3.0 列表

Eri*_*via 5 paging pagination android kotlin kotlin-flow

我有以下代码:

\n
   val history: Flow<PagingData<Any>> = Pager(PagingConfig(pageSize = 10)) {\n    PaginationBaseDataSource(apiService)\n}.flow\n    .cachedIn(viewModelScope)\n
Run Code Online (Sandbox Code Playgroud)\n

当前正在显示没有任何附加参数的项目列表。这工作正常...但现在我希望根据用户可以在前端更改的某些参数来查询此列表,让\xc2\xb4s 说我希望添加参数 3 作为查询。

\n
   val history: Flow<PagingData<Any>> = Pager(PagingConfig(pageSize = 10)) {\n    PaginationBaseDataSource(apiService, 3)\n}.flow\n    .cachedIn(viewModelScope)\n
Run Code Online (Sandbox Code Playgroud)\n

问题是...我怎样才能动态设置这个查询参数?让\xc2\xb4s 说用户而不是3,使用6,然后是9。我怎样才能实现这一点?

\n

非常感谢

\n

dla*_*lam 3

只要您的参数之一发生变化,您就需要发出新的 PagingData。实现此目的的流程式方法可能如下所示:

val queryFlow = MutableStateFlow(value = 3)
val pagingDataFlow = queryFlow.flatMapLatest { query ->
    Pager(...) { MyPagingSource(query) }.flow.cachedIn(viewModelScope)
}
Run Code Online (Sandbox Code Playgroud)