android - 在 Kotlin 中使用新参数的分页 3.0 列表

标签 android kotlin pagination paging kotlin-flow

我有以下代码:

   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/

相关文章:

android - 在Android中使用Room时如何检查数据库中是否有某个项目?

ios - 在 Firebase 中对大量数据进行分页的最有效方法

php - 搜索引擎不适用于我的分页器

android - 从应用程序类退出 Android 应用程序(非 Activity )

android - 某些样式在 TextView 中禁用 ImageSpan

android - GDPR 同意屏幕和编码

kotlin - Kotlin 中 lambda 和 KFunction 的区别

android - 如何进行大于或小于 "Safe Casts"的比较

Android 外部摄像头选项 - 覆盖在视频流之上,没有中间人服务器/路由器

SQL Server 2012 分页