android - 将 pagingData 3 流与另一个流相结合

标签 android kotlin kotlin-coroutines android-paging kotlin-flow

我有一个 pagingData 流对象,我想将它与不同的融合位置流结合起来,以便它与 pagingdata 列表中的每个项目进行相应的处理。

val point : Flow<Point> 
val pagingDate : Flow<PagingData>

我尝试使用 combine 和 combineTransform 但它似乎不起作用,因为当要点更新时应用程序崩溃并显示与 pagingData 3 相关的错误消息无法发出两次

java.lang.IllegalStateException: Attempt to collect twice from pageEventFlow, which is an illegal operation. Did you forget to call Flow<PagingData<*>>.cachedIn(coroutineScope)?

这里我有哪些选项可以使用流数据转换分页数据项?

最佳答案

只是在这里跟进,因为其他人可能会遇到这个问题,尽管 OP 还没有更新他们的答案。

这通常是由于使用了 .combine 或类似的运算符,它们会重复 Flow 中最新发出的值,从而导致同一实例被使用两次。为防止这种情况,您可以在 .combine() 之前调用 .cachedIn(scope),以便多播 Flow,为您提供预加载缓存数据的新 PagingData 实例。

关于android - 将 pagingData 3 流与另一个流相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66262502/

相关文章:

android - 防止ItemDecorator向我的 View 类型添加分隔线

kotlin - 处理 Kotlin 函数参数中的挂起和非挂起

Android: 不可见的 Seekbar Thumb 在 Seekbar 中离开 "Hole"

java - 下周在android上实现

kotlin - android jetpack compose 中带有 ConstraintLayout 的 LazyColumn

android - 在 Kotlin 协程中等待 LiveData 结果

android - Workmanger : Getting Exception kotlinx. coroutines.JobCancellationException 的长时间运行 Worker 问题:Kotlin 中的 CoroutineWorker 中的作业被取消

android-layout - 什么是@*android :bool/xyz in android

java - 执行异步任务时滑动刷新卡住

android - 无法从Firebase数据库检索数据以显示在我的文本框中