小编Oli*_*mon的帖子

在 Paging 3.0 中的第一个请求中检查列表是否为空

我试图检查第一个请求是否带有空对象,以显示一个布局,表明它没有项目。

我的解决方案是创建一个我自己的例外。我想知道是否有另一种更好的方法。因为我查看了文档并没有发现任何内容。

override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Item> {
    return try {
        val position = params.key ?: FIRST_PAGE_INDEX
        val response = api.getItem(position, params.loadSize, searchKey)
        val nextKey = response?.next
        val itemList = response?.itemList ?: emptyList()

        if (itemList.isNotEmpty()) {
            LoadResult.Page(
                data = itemList,
                prevKey = null,
                nextKey = if (nextKey == LAST_PAGE_INDEX) null else nextKey
            )
        } else {
            LoadResult.Error(EmptyListException())
        }

    } catch (exception: IOException) {
        LoadResult.Error(exception)
    } catch (exception: HttpException) {
        LoadResult.Error(exception)
    }
}
Run Code Online (Sandbox Code Playgroud)

android kotlin android-paging

8
推荐指数
1
解决办法
1701
查看次数

标签 统计

android ×1

android-paging ×1

kotlin ×1