<html devsite="true">
  <head>
    <title>PagingSource.LoadResult.Page</title>
{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %}
{% include "_shared/_reference-head-tags.html" %}
  </head>
  <body>
    <div id="metadata-info-block"></div>
    <h1>PagingSource.LoadResult.Page</h1>
    <p>
      <pre>public final data class <a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html">PagingSource.LoadResult.Page</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; extends <a href="/reference/androidx/paging/PagingSource.LoadResult.html">PagingSource.LoadResult</a></pre>
    </p>
    <div class="devsite-table-wrapper">
      <table class="jd-inheritance-table">
        <tbody>
          <tr>
            <td colspan="3"><a href="https://developer.android.com/reference/java/lang/Object.html">java.lang.Object</a></td>
          </tr>
          <tr>
            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;↳</td>
            <td colspan="2"><a href="/reference/androidx/paging/PagingSource.LoadResult.html">androidx.paging.PagingSource.LoadResult</a></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;↳</td>
            <td colspan="1"><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html">androidx.paging.PagingSource.LoadResult.Page</a></td>
          </tr>
        </tbody>
      </table>
    </div>
    <hr>
    <p>Success result object for <code><a href="/reference/androidx/paging/PagingSource.html#load(androidx.paging.PagingSource.LoadParams)">PagingSource.load</a></code>.</p>
    <pre class="prettyprint">// 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&lt;Item&gt;,
    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
)</pre>
    <pre class="prettyprint">// If you load by page number, the response may not define how to load the next page.
data class NetworkResponseObject(
    val items: List&lt;Item&gt;
)

// 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&lt;Int, Item&gt; {
    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 &gt; 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
    )
}</pre>
    <h2>Summary</h2>
    <div class="devsite-table-wrapper">
      <table class="responsive">
        <colgroup>
          <col width="40%">
          <col>
        </colgroup>
        <thead>
          <tr>
            <th colspan="100%"><h3>Nested types</h3></th>
          </tr>
        </thead>
        <tbody class="list">
          <tr>
            <td>
              <div><code>public static class <a href="/reference/androidx/paging/PagingSource.LoadResult.Page.Companion.html">PagingSource.LoadResult.Page.Companion</a></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>Constants</h3></th>
          </tr>
        </thead>
        <tbody class="list">
          <tr>
            <td width="40%"><code>static&nbsp;final int</code></td>
            <td>
              <div><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.Companion.html#COUNT_UNDEFINED()">COUNT_UNDEFINED</a></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 fields</h3></th>
          </tr>
        </thead>
        <tbody class="list">
          <tr>
            <td width="40%"><code>final @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/util/List.html">List</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;</code></td>
            <td>
              <div><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#data()">data</a></code></div>
              <p>Loaded data</p>
            </td>
          </tr>
          <tr>
            <td width="40%"><code>final int</code></td>
            <td>
              <div><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#itemsAfter()">itemsAfter</a></code></div>
              <p>Optional count of items after the loaded data.</p>
            </td>
          </tr>
          <tr>
            <td width="40%"><code>final int</code></td>
            <td>
              <div><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#itemsBefore()">itemsBefore</a></code></div>
              <p>Optional count of items before the loaded data.</p>
            </td>
          </tr>
          <tr>
            <td width="40%"><code>final Key</code></td>
            <td>
              <div><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#nextKey()">nextKey</a></code></div>
              <p><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html">Key</a></code> for next page if more data can be loaded in that direction, <code>null</code> otherwise.</p>
            </td>
          </tr>
          <tr>
            <td width="40%"><code>final Key</code></td>
            <td>
              <div><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#prevKey()">prevKey</a></code></div>
              <p><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html">Key</a></code> for previous page if more data can be loaded in that direction, <code>null</code> otherwise.</p>
            </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 constructors</h3></th>
          </tr>
        </thead>
        <tbody class="list">
          <tr>
            <td>
              <div><code>&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/PagingSource.LoadResult.Page.html#Page(kotlin.collections.List,kotlin.Any,kotlin.Any)">Page</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/util/List.html">List</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&nbsp;data,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;prevKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;nextKey<br>)</code></div>
              <p>Success result object for <code><a href="/reference/androidx/paging/PagingSource.html#load(androidx.paging.PagingSource.LoadParams)">PagingSource.load</a></code>.</p>
            </td>
          </tr>
          <tr>
            <td>
              <div><code>&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/PagingSource.LoadResult.Page.html#Page(kotlin.collections.List,kotlin.Any,kotlin.Any,kotlin.Int,kotlin.Int)">Page</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/util/List.html">List</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&nbsp;data,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;prevKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;nextKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/IntRange.html">IntRange</a>(from&nbsp;=&nbsp;-2147483648) int&nbsp;itemsBefore,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/IntRange.html">IntRange</a>(from&nbsp;=&nbsp;-2147483648) int&nbsp;itemsAfter<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 width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a></code></td>
            <td>
              <div><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#toString()">toString</a>()</code></div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="list">
      <h2>Constants</h2>
      <div class="api-item"><a name="getCOUNT_UNDEFINED()"></a><a name="setCOUNT_UNDEFINED()"></a><a name="getCOUNT_UNDEFINED--"></a><a name="setCOUNT_UNDEFINED--"></a>
        <h3 class="api-name" id="COUNT_UNDEFINED()">COUNT_UNDEFINED</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;int&nbsp;<a href="/reference/androidx/paging/PagingSource.LoadResult.Page.Companion.html#COUNT_UNDEFINED()">COUNT_UNDEFINED</a></pre>
      </div>
    </div>
    <div class="list">
      <h2>Public fields</h2>
      <div class="api-item"><a name="getData()"></a><a name="setData()"></a><a name="getData--"></a><a name="setData--"></a>
        <h3 class="api-name" id="data()">data</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/util/List.html">List</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&nbsp;<a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#data()">data</a></pre>
        <p>Loaded data</p>
      </div>
      <div class="api-item"><a name="getItemsAfter()"></a><a name="setItemsAfter()"></a><a name="getItemsAfter--"></a><a name="setItemsAfter--"></a>
        <h3 class="api-name" id="itemsAfter()">itemsAfter</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;int&nbsp;<a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#itemsAfter()">itemsAfter</a></pre>
        <p>Optional count of items after the loaded data.</p>
      </div>
      <div class="api-item"><a name="getItemsBefore()"></a><a name="setItemsBefore()"></a><a name="getItemsBefore--"></a><a name="setItemsBefore--"></a>
        <h3 class="api-name" id="itemsBefore()">itemsBefore</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;int&nbsp;<a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#itemsBefore()">itemsBefore</a></pre>
        <p>Optional count of items before the loaded data.</p>
      </div>
      <div class="api-item"><a name="getNextKey()"></a><a name="setNextKey()"></a><a name="getNextKey--"></a><a name="setNextKey--"></a>
        <h3 class="api-name" id="nextKey()">nextKey</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;Key&nbsp;<a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#nextKey()">nextKey</a></pre>
        <p><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html">Key</a></code> for next page if more data can be loaded in that direction, <code>null</code> otherwise.</p>
      </div>
      <div class="api-item"><a name="getPrevKey()"></a><a name="setPrevKey()"></a><a name="getPrevKey--"></a><a name="setPrevKey--"></a>
        <h3 class="api-name" id="prevKey()">prevKey</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;Key&nbsp;<a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#prevKey()">prevKey</a></pre>
        <p><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html">Key</a></code> for previous page if more data can be loaded in that direction, <code>null</code> otherwise.</p>
      </div>
    </div>
    <div class="list">
      <h2>Public constructors</h2>
      <div class="api-item"><a name="Page(kotlin.collections.List, kotlin.Any, kotlin.Any)"></a><a name="Page-kotlin.collections.List-kotlin.Any-kotlin.Any-"></a><a name="page"></a>
        <h3 class="api-name" id="Page(kotlin.collections.List,kotlin.Any,kotlin.Any)">Page</h3>
        <pre class="api-signature no-pretty-print">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/PagingSource.LoadResult.Page.html#Page(kotlin.collections.List,kotlin.Any,kotlin.Any)">Page</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/util/List.html">List</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&nbsp;data,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;prevKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;nextKey<br>)</pre>
        <p>Success result object for <code><a href="/reference/androidx/paging/PagingSource.html#load(androidx.paging.PagingSource.LoadParams)">PagingSource.load</a></code>.</p>
        <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 width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/util/List.html">List</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&nbsp;data</code></td>
                <td>
                  <p>Loaded data</p>
                </td>
              </tr>
              <tr>
                <td width="40%"><code>Key&nbsp;prevKey</code></td>
                <td>
                  <p><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html">Key</a></code> for previous page if more data can be loaded in that direction, <code>null</code> otherwise.</p>
                </td>
              </tr>
              <tr>
                <td width="40%"><code>Key&nbsp;nextKey</code></td>
                <td>
                  <p><code><a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html">Key</a></code> for next page if more data can be loaded in that direction, <code>null</code> otherwise.</p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="api-item"><a name="Page(kotlin.collections.List, kotlin.Any, kotlin.Any, kotlin.Int, kotlin.Int)"></a><a name="Page-kotlin.collections.List-kotlin.Any-kotlin.Any-kotlin.Int-kotlin.Int-"></a><a name="page"></a>
        <h3 class="api-name" id="Page(kotlin.collections.List,kotlin.Any,kotlin.Any,kotlin.Int,kotlin.Int)">Page</h3>
        <pre class="api-signature no-pretty-print">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/PagingSource.LoadResult.Page.html#Page(kotlin.collections.List,kotlin.Any,kotlin.Any,kotlin.Int,kotlin.Int)">Page</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/util/List.html">List</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Value&gt;&nbsp;data,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;prevKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;Key&nbsp;nextKey,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/IntRange.html">IntRange</a>(from&nbsp;=&nbsp;-2147483648) int&nbsp;itemsBefore,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/IntRange.html">IntRange</a>(from&nbsp;=&nbsp;-2147483648) int&nbsp;itemsAfter<br>)</pre>
      </div>
    </div>
    <div class="list">
      <h2>Public methods</h2>
      <div class="api-item"><a name="toString--"></a><a name="tostring"></a>
        <h3 class="api-name" id="toString()">toString</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a>&nbsp;<a href="/reference/androidx/paging/PagingSource.LoadResult.Page.html#toString()">toString</a>()</pre>
      </div>
    </div>
  </body>
</html>
