android - 没有 RecyclerView 的 Paging3
问题描述
我知道 Paging3 库旨在与 RecyclerView 一起使用,但是我有一个用例,其中分页结果也显示在地图上。如果您查看 PagingDataAdapter 类的内部,您会注意到它由 AsyncPagingDiffer 支持。所以现在,我正在尝试使用 AsyncPagingDiffer 类使其工作,该类反过来接收 ListUpdateCallback,以便在发生数据更新时通知 UI。因此,只要 ListUpdateCallback 调度任何更新,我应该能够通过调用 AsyncPagingDiffer.snapshot() 来检索数据。
这个片段很好地说明了我正在尝试做的事情:
class MapAdapter : ListUpdateCallback {
private val differ = AsyncPagingDataDiffer(MapDiff(), this)
suspend fun submitData(pagingData: PagingData<Foo>) {
differ.submitData(pagingData)
}
override fun onInserted(position: Int, count: Int) {
val data = differ.snapshot()
// Update UI
}
// Other callbacks...
}
但是当试图以这种方式恢复它时,快照总是空的或过期的。换句话说,快照实际上只有在回调已经被通知后才可用,这对我来说是不受欢迎的行为。
我可以确认这种方法适用于 Paging 2(或其他任何名称),但我希望也有一些方法可以将它与 Paging 3 一起使用,因为我不愿意降级 Paging 3 正在进行的其他功能。
解决方案
推荐阅读
- reactjs - renderToNodeStream [object Object] 服务器端渲染
- apache-kafka - 错误:无法找到或加载主类 kafka.tools.TestEndToEndLatency
- python-3.x - 如何将py文件转换为apk?
- javascript - 如何在异步函数更改数组时清空数组
- excel - 在宏复制粘贴中设置 TargetCell 的问题
- c++ - C ++如何动态添加两种不同类型的数据string和int
- javascript - 使用配置文件路径打开 Firefox [selenium webdriver NodeJS]
- python - 在测试 Costum resnet 模型期间如何解决此错误?
- python - 在 Django 中访问模型内的字段值
- php - 如何通过浮点数在php中爆炸字符串