PagingSource.LoadResult.Page
-
Cmn
data class PagingSource.LoadResult.Page<Key : Any, Value : Any> : PagingSource.LoadResult, Iterable
Success result object for PagingSource.load.
As a convenience, iterating on this object will iterate through its loaded data.
import androidx.paging.PagingSource import androidx.paging.PagingSource.LoadResult // 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, )
import androidx.paging.PagingSource import androidx.paging.PagingSource.LoadResult // 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, ) }
Summary
Constants |
||
|---|---|---|
const Int |
Cmn
|
Public constructors |
|
|---|---|
|
Success result object for |
Cmn
|
|
Cmn
|
Public properties |
||
|---|---|---|
List<Value> |
Loaded data |
Cmn
|
@IntRange(from = -2147483648) Int |
Count of items after the loaded data. |
Cmn
|
@IntRange(from = -2147483648) Int |
Count of items before the loaded data. |
Cmn
|
Key? |
|
Cmn
|
Key? |
|
Cmn
|
Constants
Public constructors
Page
<Key : Any, Value : Any> Page(data: List<Value>, prevKey: Key?, nextKey: Key?)
Success result object for PagingSource.load.
Public properties
itemsAfter
val itemsAfter: @IntRange(from = -2147483648) Int
Count of items after the loaded data. Must be implemented if jumping is enabled. Optional otherwise.
itemsBefore
val itemsBefore: @IntRange(from = -2147483648) Int
Count of items before the loaded data. Must be implemented if jumping is enabled. Optional otherwise.