gpt4 book ai didi

android - 分页库 : skip loadInitial in PageKeyedDataSource

转载 作者:行者123 更新时间:2023-11-29 02:23:36 25 4
gpt4 key购买 nike

根据文档,在 UI 线程中创建 PagedList 期间调用 loadInitial 以提供一些占位符,直到获取实际数据以避免向用户显示空列表。

有什么方法可以跳过 loadInitial 或返回空列表吗?

如果我使用默认配置返回空列表,loadAfter 将不会被调用。我查看了一些实现,但所有人都只是复制他们的代码以在 loadInitialloadAfter 中从互联网加载数据,在我看来这不是很好的解决方案。

最佳答案

在您的loadInitial 方法中只需设置重试操作

setRetry(Action { loadInitial(params, callback) })

override fun loadInitial(params: LoadInitialParams<String>, callback: LoadInitialCallback<String, Lab>) {
setRetry(Action { loadInitial(params, callback) })

// Set network state if you want
networkState.postValue(Response(Response.ViewState.ERROR, null, Throwable("")))
initialLoad.postValue(Response(Response.ViewState.ERROR, null, Throwable("")))
}

setRetry 方法

private var retryCompletable: Completable? = null

private fun setRetry(action: Action?) {
if (action == null) {
this.retryCompletable = null
} else {
this.retryCompletable = Completable.fromAction(action)
}
}

当你想调用 loadAfter 时,你必须 invalidate sourceFactory

fun refresh() = sourceFactory.dataSource.value.invalidate()

关于android - 分页库 : skip loadInitial in PageKeyedDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53535609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com