{% setvar book_path %}/reference/kotlin/androidx/_book.yaml{% endsetvar %} {% include "_shared/_reference-head-tags.html" %}
class LivePagedListBuilder<Key : Any, Value : Any>
Builder for LiveData<PagedList>
for Java users, given a androidx.paging.DataSource.Factory
and a androidx.paging.PagedList.Config
.
The required parameters are in the constructor, so you can simply construct and build, or optionally enable extra features (such as initial load key, or BoundaryCallback).
Parameters | |
---|---|
<Key : Any> |
Type of input valued used to load data from the |
<Value : Any> |
Item type being presented. |
See also | |
---|---|
toLiveData |
Public constructors |
|
---|---|
<Key : Any, Value : Any> Creates a |
|
<Key : Any, Value : Any> Creates a |
|
<Key : Any, Value : Any> Creates a |
|
<Key : Any, Value : Any> Creates a |
Public functions |
|
---|---|
<ERROR CLASS><PagedList<Value>> |
build() Constructs the |
LivePagedListBuilder<Key, Value> |
setBoundaryCallback( Sets a |
LivePagedListBuilder<Key, Value> |
setCoroutineScope(coroutineScope: CoroutineScope) Set the |
LivePagedListBuilder<Key, Value> |
setFetchExecutor(fetchExecutor: Executor) Sets |
LivePagedListBuilder<Key, Value> |
setInitialLoadKey(key: Key?) First loading key passed to the first PagedList/DataSource. |
<Key : Any, Value : Any>LivePagedListBuilder(
dataSourceFactory: DataSource.Factory<Key, Value>,
config: PagedList.Config
)
Creates a LivePagedListBuilder
with required parameters.
Parameters | |
---|---|
dataSourceFactory: DataSource.Factory<Key, Value> |
|
config: PagedList.Config |
Paging configuration. |
<Key : Any, Value : Any>LivePagedListBuilder(
dataSourceFactory: DataSource.Factory<Key, Value>,
pageSize: Int
)
Creates a LivePagedListBuilder
with required parameters.
This method is a convenience for:
LivePagedListBuilder(dataSourceFactory,
new PagedList.Config.Builder().setPageSize(pageSize).build())
Parameters | |
---|---|
dataSourceFactory: DataSource.Factory<Key, Value> |
|
pageSize: Int |
Size of pages to load. |
<Key : Any, Value : Any>LivePagedListBuilder(
pagingSourceFactory: () -> PagingSource<Key, Value>,
config: PagedList.Config
)
Creates a LivePagedListBuilder
with required parameters.
Parameters | |
---|---|
pagingSourceFactory: () -> PagingSource<Key, Value> |
The returned
|
config: PagedList.Config |
Paging configuration. |
<Key : Any, Value : Any>LivePagedListBuilder(
pagingSourceFactory: () -> PagingSource<Key, Value>,
pageSize: Int
)
Creates a LivePagedListBuilder
with required parameters.
This method is a convenience for:
LivePagedListBuilder(pagingSourceFactory,
new PagedList.Config.Builder().setPageSize(pageSize).build())
Parameters | |
---|---|
pagingSourceFactory: () -> PagingSource<Key, Value> |
The returned
|
pageSize: Int |
Size of pages to load. |
fun build(): <ERROR CLASS><PagedList<Value>>
Constructs the LiveData<PagedList>
.
No work (such as loading) is done immediately, the creation of the first PagedList
is deferred until the LiveData is observed.
Returns | |
---|---|
<ERROR CLASS><PagedList<Value>> |
fun setBoundaryCallback(
boundaryCallback: PagedList.BoundaryCallback<Value>?
): LivePagedListBuilder<Key, Value>
Sets a androidx.paging.PagedList.BoundaryCallback
on each PagedList created, typically used to load additional data from network when paging from local storage.
Pass a PagedList.BoundaryCallback
to listen to when the PagedList runs out of data to load. If this method is not called, or null
is passed, you will not be notified when each PagingSource
runs out of data to provide to its PagedList
.
If you are paging from a DataSource.Factory backed by local storage, you can set a BoundaryCallback to know when there is no more information to page from local storage. This is useful to page from the network when local storage is a cache of network data.
Note that when using a BoundaryCallback with a LiveData<PagedList>
, method calls on the callback may be dispatched multiple times - one for each PagedList/DataSource pair. If loading network data from a BoundaryCallback, you should prevent multiple dispatches of the same method from triggering multiple simultaneous network loads.
Parameters | |
---|---|
boundaryCallback: PagedList.BoundaryCallback<Value>? |
The boundary callback for listening to PagedList load state. |
Returns | |
---|---|
LivePagedListBuilder<Key, Value> |
this |
fun setCoroutineScope(coroutineScope: CoroutineScope): LivePagedListBuilder<Key, Value>
Set the CoroutineScope
that page loads should be launched within. The set coroutineScope
allows a PagingSource
to cancel running load operations when the results are no longer needed - for example, when the containing activity is destroyed.
Defaults to GlobalScope
.
Parameters | |
---|---|
coroutineScope: CoroutineScope |
Returns | |
---|---|
LivePagedListBuilder<Key, Value> |
this |
fun setFetchExecutor(fetchExecutor: Executor): LivePagedListBuilder<Key, Value>
Sets Executor
used for background fetching of PagedList
s, and the pages within.
The library will wrap this as a kotlinx.coroutines.CoroutineDispatcher
.
If not set, defaults to a ExecutorCoroutineDispatcher
backed by ArchTaskExecutor.getIOThreadExecutor.
Parameters | |
---|---|
fetchExecutor: Executor |
|
Returns | |
---|---|
LivePagedListBuilder<Key, Value> |
this |
fun setInitialLoadKey(key: Key?): LivePagedListBuilder<Key, Value>
First loading key passed to the first PagedList/DataSource.
When a new PagedList/DataSource pair is created after the first, it acquires a load key from the previous generation so that data is loaded around the position already being observed.
Parameters | |
---|---|
key: Key? |
Initial load key passed to the first PagedList/DataSource. |
Returns | |
---|---|
LivePagedListBuilder<Key, Value> |
this |