gpt4 book ai didi

android - 在 Jetpack Compose 中调用分页数据的刷新方法无法正常工作

转载 作者:行者123 更新时间:2023-12-05 09:29:43 30 4
gpt4 key购买 nike

我正在使用下面的分页源实现从网络中获取数据,并通过 collectAsLazyPagingItems() 在可组合项中观察它。但是,当在此 LazyPagingItems 上调用 refresh() 方法时,它不会从 page 0 获取数据,而是从最后获取的页码获取数据,这导致没有数据显示。这里出了什么问题?会不会是因为 val page = params.key ?: 0

class CommentDataSource(
private val postId: Long,
private val commentApi: CommentApi
) : PagingSource<Int, Comment>() {
override fun getRefreshKey(state: PagingState<Int, Comment>): Int? {
return state.anchorPosition
}

override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Comment> {
return try {
val page = params.key ?: 0
val responseData = commentApi.getPostComments(
postId = postId,
page = page
).data

LoadResult.Page(
data = responseData.comments,
prevKey = if (page == 0) null else page - 1,
nextKey = if (!responseData.hasNextPage) null else responseData.currentPage + 1
)
} catch (e: IOException) {
LoadResult.Error(e)
} catch (e: HttpException) {
LoadResult.Error(e)
}
}
}

最佳答案

我通过在 getRefreshKey() 方法中返回 null 来解决这个问题

关于android - 在 Jetpack Compose 中调用分页数据的刷新方法无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70444830/

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