没有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)的方法,但是我希望也可以在Paging 3中使用该方法,因为我不愿意降级Paging正在进行的其他功能3。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)