blob: 67190b6a37782240409145f7aabb9ee69c6cb1ac [file] [log] [blame]
<html devsite="true">
<head>
<title>Pager</title>
{% setvar book_path %}/reference/kotlin/androidx/_book.yaml{% endsetvar %}
{% include "_shared/_reference-head-tags.html" %}
</head>
<body>
<h1>Pager</h1>
{% setvar page_path %}androidx/paging/Pager.html{% endsetvar %}
{% setvar can_switch %}1{% endsetvar %}
{% include "reference/_kotlin_switcher2.md" %}
<p>
<pre>class Pager</pre>
</p>
<hr>
<p>Primary entry point into Paging; constructor for a reactive stream of <code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code>.</p>
<p>Each <code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code> represents a snapshot of the backing paginated data. Updates to the backing dataset should be represented by a new instance of <code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code>.</p>
<p><code><a href="/reference/kotlin/androidx/paging/PagingSource.html#invalidate()">PagingSource.invalidate</a></code> and calls to <code><a href="/reference/kotlin/androidx/paging/AsyncPagingDataDiffer.html#refresh()">AsyncPagingDataDiffer.refresh</a></code> or <code><a href="/reference/kotlin/androidx/paging/PagingDataAdapter.html#refresh()">PagingDataAdapter.refresh</a></code> will notify <code><a href="/reference/kotlin/androidx/paging/Pager.html">Pager</a></code> that the backing dataset has been updated and a new <code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code> / <code><a href="/reference/kotlin/androidx/paging/PagingSource.html">PagingSource</a></code> pair will be generated to represent an updated snapshot.</p>
<p><code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code> can be transformed to alter data as it loads, and presented in a <code>RecyclerView</code> via <code>AsyncPagingDataDiffer</code> or <code>PagingDataAdapter</code>.</p>
<p>LiveData support is available as an extension property provided by the <code>androidx.paging:paging-runtime</code> artifact.</p>
<p>RxJava support is available as extension properties provided by the <code>androidx.paging:paging-rxjava2</code> artifact.</p>
<h2>Summary</h2>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2"><h3>Public properties</h3></th>
</tr>
</thead>
<tbody>
<tr>
<td><code><a href="/reference/kotlin/kotlinx/coroutines/flow/Flow.html">Flow</a>&lt;<a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a>&lt;Value&gt;&gt;</code></td>
<td width="100%">
<div><code><a href="/reference/kotlin/androidx/paging/Pager.html#flow()">flow</a></code></div>
<p>A cold <code><a href="/reference/kotlin/kotlinx/coroutines/flow/Flow.html">Flow</a></code> of <code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code>, which emits new instances of <code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code> once they become invalidated by <code><a href="/reference/kotlin/androidx/paging/PagingSource.html#invalidate()">PagingSource.invalidate</a></code> or calls to <code><a href="/reference/kotlin/androidx/paging/AsyncPagingDataDiffer.html#refresh()">AsyncPagingDataDiffer.refresh</a></code> or <code><a href="/reference/kotlin/androidx/paging/PagingDataAdapter.html#refresh()">PagingDataAdapter.refresh</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2"><h3>Public constructors</h3></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div><code><a href="/reference/kotlin/androidx/paging/Pager.html#Pager(androidx.paging.PagingConfig,kotlin.Any,androidx.paging.RemoteMediator,kotlin.Function0)">Pager</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;config:&nbsp;<a href="/reference/kotlin/androidx/paging/PagingConfig.html">PagingConfig</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;initialKey:&nbsp;Key?,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/kotlin/kotlin/OptIn.html">OptIn</a>(markerClass&nbsp;=&nbsp;[ExperimentalPagingApi])&nbsp;remoteMediator:&nbsp;<a href="/reference/kotlin/androidx/paging/RemoteMediator.html">RemoteMediator</a>&lt;Key,&nbsp;Value&gt;?,<br>&nbsp;&nbsp;&nbsp;&nbsp;pagingSourceFactory:&nbsp;()&nbsp;-&gt;&nbsp;<a href="/reference/kotlin/androidx/paging/PagingSource.html">PagingSource</a>&lt;Key,&nbsp;Value&gt;<br>)</code></div>
</td>
</tr>
</tbody>
</table>
</div>
<h2>Public properties</h2>
<div><a name="getFlow()"></a><a name="setFlow()"></a><a name="getFlow--"></a><a name="setFlow--"></a>
<h3 class="api-name" id="flow()">flow</h3>
<pre class="api-signature no-pretty-print">val&nbsp;<a href="/reference/kotlin/androidx/paging/Pager.html#flow()">flow</a>:&nbsp;<a href="/reference/kotlin/kotlinx/coroutines/flow/Flow.html">Flow</a>&lt;<a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a>&lt;Value&gt;&gt;</pre>
<p>A cold <code><a href="/reference/kotlin/kotlinx/coroutines/flow/Flow.html">Flow</a></code> of <code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code>, which emits new instances of <code><a href="/reference/kotlin/androidx/paging/PagingData.html">PagingData</a></code> once they become invalidated by <code><a href="/reference/kotlin/androidx/paging/PagingSource.html#invalidate()">PagingSource.invalidate</a></code> or calls to <code><a href="/reference/kotlin/androidx/paging/AsyncPagingDataDiffer.html#refresh()">AsyncPagingDataDiffer.refresh</a></code> or <code><a href="/reference/kotlin/androidx/paging/PagingDataAdapter.html#refresh()">PagingDataAdapter.refresh</a></code>.</p>
</div>
<h2>Public constructors</h2>
<div><a name="Pager(androidx.paging.PagingConfig, kotlin.Any, androidx.paging.RemoteMediator, kotlin.Function0)"></a><a name="Pager-androidx.paging.PagingConfig-kotlin.Any-androidx.paging.RemoteMediator-kotlin.Function0-"></a>
<h3 class="api-name" id="Pager(androidx.paging.PagingConfig,kotlin.Any,androidx.paging.RemoteMediator,kotlin.Function0)">Pager</h3>
<pre class="api-signature no-pretty-print"><a href="/reference/kotlin/androidx/paging/Pager.html#Pager(androidx.paging.PagingConfig,kotlin.Any,androidx.paging.RemoteMediator,kotlin.Function0)">Pager</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;config:&nbsp;<a href="/reference/kotlin/androidx/paging/PagingConfig.html">PagingConfig</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;initialKey:&nbsp;Key? = null,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/kotlin/kotlin/OptIn.html">OptIn</a>(markerClass&nbsp;=&nbsp;[ExperimentalPagingApi])&nbsp;remoteMediator:&nbsp;<a href="/reference/kotlin/androidx/paging/RemoteMediator.html">RemoteMediator</a>&lt;Key,&nbsp;Value&gt;? = null,<br>&nbsp;&nbsp;&nbsp;&nbsp;pagingSourceFactory:&nbsp;()&nbsp;-&gt;&nbsp;<a href="/reference/kotlin/androidx/paging/PagingSource.html">PagingSource</a>&lt;Key,&nbsp;Value&gt;<br>)</pre>
</div>
</body>
</html>