小编Eli*_*ber的帖子

PageKeyedDataSource load连续调用后

我有一个连续调用loadAfter的PageKeyedDataSource,并且所有项目都多次添加到Recyclerview中。从API方面来看,null lastEvaluatedKey表示给我第一页,这对于为什么它不断调用以获取第一页还是A是有意义的。如果没有更多数据要获取(又名params.key == null?和B ,则它不应该停止) t是COMPARATOR在适配器不允许添加相同的项目多次吗?我在想什么?

PageKeyedDataSource.kt

class ReservationsPageKeyedDataSource(private val retryExecutor: Executor) : PageKeyedDataSource<String, Reservation?>() {

    private var retry: (() -> Any)? = null

    val initialLoad = MutableLiveData<PagingNetworkState>()

    fun retryAllFailed() {
        val prevRetry = retry
        retry = null
        prevRetry?.let {
            retryExecutor.execute {
                it.invoke()
            }
        }
    }

    override fun loadInitial(
        params: LoadInitialParams<String>,
        callback: LoadInitialCallback<String, Reservation?>
    ) {
        val request = Api.reservationsService.getReservations(dateType = RERVATIONS_DATE_TYPE.future, last = null)

        initialLoad.postValue(PagingNetworkState.LOADING)

        // triggered by a refresh, execute in sync
        try …
Run Code Online (Sandbox Code Playgroud)

kotlin android-architecture-components android-paging

5
推荐指数
2
解决办法
60
查看次数