我正在使用分页库来处理分页。
这是我的DataSource
课程,请求被发送到服务器。
class HistoryDataSource() : PageKeyedDataSource<Int, DummyObject>() {
override fun loadInitial(
params: LoadInitialParams<Int>,
callback: LoadInitialCallback<Int, DummyObject>) {
//First load
}
override fun loadAfter(
params: LoadParams<Int>,
callback: LoadCallback<Int, DummyObject>) {
authApi.loadHistoryForCard(params.key.toInt(), params.requestedLoadSize, cardToken)
.subscribe({ response ->
//HERE I DELETE THE FIRST N ITEMS ACCORDING TO SOME CONDITION.
//THEN PASS LIST TO CALLBACK
callback.onResult(
response.list,
params.key + 1
)
},{
//handle error here
}).also {}
}
override fun loadBefore(
params: LoadParams<Int>,
callback: LoadCallback<Int, DummyObject>) {
}
}
但是:当我删除列表中的某些项目时,我最终可能会遇到所有项目都被删除并且列表可能为空的情况。然后,我需要将这个空列表传递给回调。
问题是,如果我将空列表传递给回调,分页库会认为这是列表的结尾。但实际上并非如此。服务器中还有更多的项目。
即使我将空列表传递给回调,如何继续发送请求以加载下一个项目?
或者(解释问题)如何让分页库知道它不是列表的结尾(即使我将空列表传递给回调)?