PagingSource.LoadResult.Page
public final class PagingSource.LoadResult.Page<Key extends Object, Value extends Object> extends PagingSource.LoadResult implements Iterable
| java.lang.Object | ||
| ↳ | androidx.paging.PagingSource.LoadResult | |
| ↳ | androidx.paging.PagingSource.LoadResult.Page |
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 |
|
|---|---|
static final int |
Public constructors |
|---|
<Key extends Object, Value extends Object> Page(Success result object for |
Public methods |
|
|---|---|
final @NonNull List<@NonNull Value> |
getData()Loaded data |
final int |
Count of items after the loaded data. |
final int |
Count of items before the loaded data. |
final Key |
|
final Key |
|
@NonNull Iterator<@NonNull Value> |
iterator() |
@NonNull String |
toString() |
Constants
Public constructors
Public methods
getItemsAfter
public final int getItemsAfter()
Count of items after the loaded data. Must be implemented if jumping is enabled. Optional otherwise.
getItemsBefore
public final int getItemsBefore()
Count of items before the loaded data. Must be implemented if jumping is enabled. Optional otherwise.
getNextKey
public final Key getNextKey()
Key for next page if more data can be loaded in that direction, null otherwise.
getPrevKey
public final Key getPrevKey()
Key for previous page if more data can be loaded in that direction, null otherwise.