LoadInitialCallback
abstract class LoadInitialCallback<T : Any!>
kotlin.Any | |
↳ | androidx.paging.PositionalDataSource.LoadInitialCallback |
Callback for loadInitial(LoadInitialParams, LoadInitialCallback)
to return data, position, and count.
A callback should be called only once, and may throw if called again.
It is always valid for a DataSource loading method that takes a callback to stash the callback and call it later. This enables DataSources to be fully asynchronous, and to handle temporary, recoverable error states (such as a network error that can be retried).
Summary
Public constructors |
|
---|---|
<init>() Callback for |
Public methods |
|
---|---|
abstract Unit |
onResult(@NonNull data: MutableList<T>, position: Int, totalCount: Int) Called to pass initial load state from a DataSource. |
abstract Unit |
onResult(@NonNull data: MutableList<T>, position: Int) Called to pass initial load state from a DataSource without total count, when placeholders aren't requested. |
Public constructors
<init>
LoadInitialCallback()
Callback for loadInitial(LoadInitialParams, LoadInitialCallback)
to return data, position, and count.
A callback should be called only once, and may throw if called again.
It is always valid for a DataSource loading method that takes a callback to stash the callback and call it later. This enables DataSources to be fully asynchronous, and to handle temporary, recoverable error states (such as a network error that can be retried).
Public methods
onResult
abstract fun onResult(@NonNull data: MutableList<T>, position: Int, totalCount: Int): Unit
Called to pass initial load state from a DataSource.
Call this method from your DataSource's loadInitial
function to return data, and inform how many placeholders should be shown before and after. If counting is cheap to compute (for example, if a network load returns the information regardless), it's recommended to pass the total size to the totalCount parameter. If placeholders are not requested (when LoadInitialParams#placeholdersEnabled
is false), you can instead call onResult(List, int)
.
Parameters | |
---|---|
data |
MutableList<T>: List of items loaded from the DataSource. If this is empty, the DataSource is treated as empty, and no further loads will occur. |
position |
MutableList<T>: Position of the item at the front of the list. If there are N items before the items in data that can be loaded from this DataSource, pass N . |
totalCount |
MutableList<T>: Total number of items that may be returned from this DataSource. Includes the number in the initial data parameter as well as any items that can be loaded in front or behind of data . |
onResult
abstract fun onResult(@NonNull data: MutableList<T>, position: Int): Unit
Called to pass initial load state from a DataSource without total count, when placeholders aren't requested.
Note: This method can only be called when placeholders are disabled (LoadInitialParams#placeholdersEnabled
is false).
Call this method from your DataSource's loadInitial
function to return data, if position is known but total size is not. If placeholders are requested, call the three parameter variant: onResult(List, int, int)
.
Parameters | |
---|---|
data |
MutableList<T>: List of items loaded from the DataSource. If this is empty, the DataSource is treated as empty, and no further loads will occur. |
position |
MutableList<T>: Position of the item at the front of the list. If there are N items before the items in data that can be provided by this DataSource, pass N . |