{% setvar book_path %}/reference/kotlin/androidx/_book.yaml{% endsetvar %} {% include "_shared/_reference-head-tags.html" %}
data class PagingSource.LoadResult.Page<Key : Any, Value : Any> : PagingSource.LoadResult
Success result object for PagingSource.load
.
// One common method of pagination is to use next (and optionally previous) tokens. // The below code shows you how to data class NetworkResponseObject( val items: List<Item>, val next: String, val approximateItemsRemaining: Int ) // The following shows how you use convert such a response loaded in PagingSource.load() to // a Page, which can be returned from that method fun NetworkResponseObject.toPage() = LoadResult.Page( data = items, prevKey = null, // this implementation can only append, can't load a prepend nextKey = next, // next token will be the params.key of a subsequent append load itemsAfter = approximateItemsRemaining )
// If you load by page number, the response may not define how to load the next page. data class NetworkResponseObject( val items: List<Item> ) // The following shows how you use the current page number (e.g., the current key in // PagingSource.load() to convert a response into a Page, which can be returned from that method fun NetworkResponseObject.toPage(pageNumber: Int): LoadResult.Page<Int, Item> { return LoadResult.Page( data = items, // Since 0 is the lowest page number, return null to signify no more pages // should be loaded before it. prevKey = if (pageNumber > 0) pageNumber - 1 else null, // This API defines that it's out of data when a page returns empty. When out of // data, we return `null` to signify no more pages should be loaded // If the response instead nextKey = if (items.isNotEmpty()) pageNumber + 1 else null ) }
Nested types |
|
---|---|
PagingSource.LoadResult.Page.Companion |
Public properties |
|
---|---|
List<Value> |
Loaded data |
Int |
Optional count of items after the loaded data. |
Int |
Optional count of items before the loaded data. |
Key? |
|
Key? |
|
Public constructors |
|
---|---|
Success result object for |
|
val nextKey: Key?
Key
for next page if more data can be loaded in that direction, null
otherwise.
val prevKey: Key?
Key
for previous page if more data can be loaded in that direction, null
otherwise.
<Key : Any, Value : Any> Page(data: List<Value>, prevKey: Key?, nextKey: Key?)
Success result object for PagingSource.load
.