paging3 中 PREPEND 状态的含义是什么?

问题描述

我看过google github中给出的演示。但它只是返回 MediatorResult.Success(endOfPaginationReached = true)

同时,如果将其更改为 MediatorResult.Success(endOfPaginationReached = false),我的代码也会正常运行。

所以,我想知道 PREPEND 的具体含义是什么?

我问这个问题的原因是在refresing时遇到网络错误,而我的Room中没有任何内容,Paging3不会给出任何提示。(虽然我可以通过添加错误解决它mainView 中的tip view,我觉得不雅。)

解决方法

PREPEND 用于允许丢弃页面的非位置数据源。因此,如果您在第 5 页上,则丢弃了第 3 页和之前的第 3 页,然后向上滚动,边界将加载先前已丢弃的第 3 页。它允许您从分页源的中间重新初始化,而不是被迫在开头(参见 initialKey 参数)。