我试图检查第一个请求是否带有空对象,以显示一个布局,表明它没有项目。
我的解决方案是创建一个我自己的例外。我想知道是否有另一种更好的方法。因为我查看了文档并没有发现任何内容。
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)