我正在研究在我的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