blob: 949224077cd299b182eb005d836dedc3c572525b [file] [log] [blame]
<html devsite="true">
<head>
<title>Pager</title>
{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %}
{% include "_shared/_reference-head-tags.html" %}
</head>
<body>
<div itemscope="" itemtype="http://developers.google.com/ReferenceObject">
<meta itemprop="name" content="Pager">
<meta itemprop="path" content="androidx.paging">
<meta itemprop="property" content="getFlow()">
<meta itemprop="language" content="JAVA">
</div>
<div id="header-block">
<div>
<h1>Pager</h1>
</div>
</div>
<div id="refdoc-switcher-placeholder"></div>
<p>
<pre>public final class <a href="/reference/androidx/paging/Pager.html">Pager</a>&lt;Key&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;Value&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt;</pre>
</p>
<hr>
<p>Primary entry point into Paging; constructor for a reactive stream of <code><a href="/reference/androidx/paging/PagingData.html">PagingData</a></code>.</p>
<p>Each <code><a href="/reference/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/androidx/paging/PagingData.html">PagingData</a></code>.</p>
<p>PagingSource.invalidate and calls to AsyncPagingDataDiffer.refresh or PagingDataAdapter.refresh will notify <code><a href="/reference/androidx/paging/Pager.html">Pager</a></code> that the backing dataset has been updated and a new <code><a href="/reference/androidx/paging/PagingData.html">PagingData</a></code> / PagingSource pair will be generated to represent an updated snapshot.</p>
<p><code><a href="/reference/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>
<pre class="prettyprint lang-kotlin">
import androidx.paging.insertSeparators
/*
* Create letter separators in an alphabetically sorted list.
*
* For example, if the input is:
* &quot;apple&quot;, &quot;apricot&quot;, &quot;banana&quot;, &quot;carrot&quot;
*
* The operator would output:
* &quot;A&quot;, &quot;apple&quot;, &quot;apricot&quot;, &quot;B&quot;, &quot;banana&quot;, &quot;C&quot;, &quot;carrot&quot;
*/
pagingDataStream.map { pagingData -&gt;
// map outer stream, so we can perform transformations on each paging generation
pagingData.insertSeparators { before: String?, after: String? -&gt;
if (after != null &amp;&amp; before?.first() != after.first()) {
// separator - after is first item that starts with its first letter
after.first().toUpperCase().toString()
} else {
// no separator - either end of list, or first letters of before/after are the same
null
}
}
}</pre>
<h2>Summary</h2>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%"><h3>Public constructors</h3></th>
</tr>
</thead>
<tbody class="list">
<tr>
<td>
<div><code>@<a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a><br>@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-opt-in/index.html">OptIn</a>(markerClass&nbsp;=&nbsp;)<br>&lt;Key&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;Value&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/paging/Pager.html#Pager([Error type: Unresolved type for PagingConfig],kotlin.Any,kotlin.Function0)">Pager</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&nbsp;config,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;initialKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Key,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&gt;&nbsp;pagingSourceFactory<br>)</code></div>
</td>
</tr>
<tr>
<td>
<div><code>@<a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a><br>&lt;Key&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;Value&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/paging/Pager.html#Pager([Error type: Unresolved type for PagingConfig],kotlin.Any,[Error type: Unresolved type for RemoteMediator&lt;Key, Value&gt;],kotlin.Function0)">Pager</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&nbsp;config,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;initialKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Key,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&nbsp;remoteMediator,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Key,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&gt;&nbsp;pagingSourceFactory<br>)</code></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%"><h3>Public methods</h3></th>
</tr>
</thead>
<tbody class="list">
<tr>
<td><code>final @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/paging/PagingData.html">PagingData</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&gt;</code></td>
<td>
<div><code><a href="/reference/androidx/paging/Pager.html#getFlow()">getFlow</a>()</code></div>
<p>A cold Flow of <code><a href="/reference/androidx/paging/PagingData.html">PagingData</a></code>, which emits new instances of <code><a href="/reference/androidx/paging/PagingData.html">PagingData</a></code> once they become invalidated by PagingSource.invalidate or calls to AsyncPagingDataDiffer.refresh or PagingDataAdapter.refresh.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="list">
<h2>Public constructors</h2>
<div class="api-item"><a name="Pager([Error type: Unresolved type for PagingConfig], kotlin.Any, kotlin.Function0)"></a><a name="Pager-[Error type: Unresolved type for PagingConfig]-kotlin.Any-kotlin.Function0-"></a><a name="pager"></a>
<div class="api-name-block">
<div>
<h3 id="Pager([Error type: Unresolved type for PagingConfig],kotlin.Any,kotlin.Function0)">Pager</h3>
</div>
</div>
<pre class="api-signature no-pretty-print">@<a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a><br>@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-opt-in/index.html">OptIn</a>(markerClass&nbsp;=&nbsp;)<br>public&nbsp;&lt;Key&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;Value&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/paging/Pager.html#Pager([Error type: Unresolved type for PagingConfig],kotlin.Any,kotlin.Function0)">Pager</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&nbsp;config,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;initialKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Key,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&gt;&nbsp;pagingSourceFactory<br>)</pre>
</div>
<div class="api-item"><a name="Pager([Error type: Unresolved type for PagingConfig], kotlin.Any, [Error type: Unresolved type for RemoteMediator&lt;Key, Value&gt;], kotlin.Function0)"></a><a name="Pager-[Error type: Unresolved type for PagingConfig]-kotlin.Any-[Error type: Unresolved type for RemoteMediator&lt;Key, Value&gt;]-kotlin.Function0-"></a><a name="pager"></a>
<div class="api-name-block">
<div>
<h3 id="Pager([Error type: Unresolved type for PagingConfig],kotlin.Any,[Error type: Unresolved type for RemoteMediator&lt;Key, Value&gt;],kotlin.Function0)">Pager</h3>
</div>
</div>
<pre class="api-signature no-pretty-print">@<a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a><br>public&nbsp;&lt;Key&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;Value&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/paging/Pager.html#Pager([Error type: Unresolved type for PagingConfig],kotlin.Any,[Error type: Unresolved type for RemoteMediator&lt;Key, Value&gt;],kotlin.Function0)">Pager</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&nbsp;config,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;initialKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Key,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&nbsp;remoteMediator,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Key,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&gt;&nbsp;pagingSourceFactory<br>)</pre>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%">Parameters</th>
</tr>
</thead>
<tbody class="list">
<tr>
<td><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&nbsp;config</code></td>
<td>
<p>The configuration</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="list">
<h2>Public methods</h2>
<div class="api-item"><a name="getFlow--"></a><a name="getflow"></a>
<div class="api-name-block">
<div>
<h3 id="getFlow()">getFlow</h3>
</div>
</div>
<pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/[JVM root]/&lt;Error class: unknown class&gt;.html">&lt;Error class: unknown class&gt;</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/paging/PagingData.html">PagingData</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&gt;&nbsp;<a href="/reference/androidx/paging/Pager.html#getFlow()">getFlow</a>()</pre>
<p>A cold Flow of <code><a href="/reference/androidx/paging/PagingData.html">PagingData</a></code>, which emits new instances of <code><a href="/reference/androidx/paging/PagingData.html">PagingData</a></code> once they become invalidated by PagingSource.invalidate or calls to AsyncPagingDataDiffer.refresh or PagingDataAdapter.refresh.</p>
</div>
</div>
</body>
</html>