使用skip/take分页3库



我正在研究在我的android应用程序上使用分页3库来处理分页。一个小问题是,我发现的每个例子都假设,当我的公司为我们的API使用skip/take时,我总是向API提供一个页码,我使用的其他一些不受我控制的API也是如此。

我看到第2页有一些东西,但它看起来贬值了,所以我很好奇他们对第3页的解决方案是什么?

您所说的skip/take是指您有一个项键控的源,它希望加载许多项并将偏移量作为输入吗?

在Paging2中,每种类型的键都有显式类,但在Paging3中,您可以控制如何直接解释键,因此可以使用偏移量作为键来实现PagingSource。

天真地,只是为了显示nextKey计算:

class MyPagingSource : PagingSource<Int, Item>() {
override suspend fun load(params: LoadParams) {
...
val data = api.load(offset = params.key, size = params.loadSize)
return LoadResult.Page(
...
prevKey = ...
nextKey = data.size() + params.key
)
}
...
}

注意:如果你想支持prepend、错误处理和getRefreshKey,你仍然需要实现prepend

最新更新