1

我正在使用分页库来处理分页。

这是我的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>) {
}
}

但是:当我删除列表中的某些项目时,我最终可能会遇到所有项目都被删除并且列表可能为空的情况。然后,我需要将这个空列表传递给回调。

问题是,如果我将空列表传递给回调,分页库会认为这是列表的结尾。但实际上并非如此。服务器中还有更多的项目。

即使我将空列表传递给回调,如何继续发送请求以加载下一个项目?

或者(解释问题)如何让分页库知道它不是列表的结尾(即使我将空列表传递给回调)?

4

0 回答 0