Paging-Bibliothek – Übersicht Teil von Android Jetpack.
Mit der Paging-Bibliothek können Sie Seiten mit Daten aus einem größeren Datensatz aus dem lokalen Speicher oder über ein Netzwerk laden und anzeigen. So kann Ihre App sowohl die Netzwerkbandbreite als auch die Systemressourcen effizienter nutzen. Die Komponenten der Paging-Bibliothek sind so konzipiert, dass sie in die empfohlene Android-App-Architektur passen, sich nahtlos in andere Jetpack-Komponenten integrieren lassen und erstklassigen Kotlin-Support bieten.
Vorteile der Paging-Bibliothek
Die Paging-Bibliothek umfasst die folgenden Funktionen:
- In-Memory-Caching für Ihre paginaten Daten. So wird sichergestellt, dass Ihre App Systemressourcen effizient nutzt, wenn sie mit ausgelagerten Daten arbeitet.
- Integrierte Deduplizierung von Anfragen, die dafür sorgt, dass Ihre App Netzwerkbandbreite und Systemressourcen effizient nutzt.
- Konfigurierbare
RecyclerView
-Adapter, die automatisch Daten anfordern, wenn der Nutzer zum Ende der geladenen Daten scrollt. - Erstklassige Unterstützung für Kotlin-Coroutinen und ‑Abläufe sowie
LiveData
und RxJava. - Integrierte Unterstützung für die Fehlerbehandlung, einschließlich Aktualisierungs- und Wiederholungsfunktionen.
Feedback geben
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme für diese Bibliothek an, bevor Sie eine neue erstellen. Sie können für ein bestehendes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen zum Einreichen von Feedback finden Sie in der Dokumentation zum Issue Tracker.
Einrichten
Wenn Sie Paginierungskomponenten in Ihre Android-App importieren möchten, fügen Sie der Datei build.gradle
Ihrer App die folgenden Abhängigkeiten hinzu:
Cool
dependencies { def paging_version = "3.3.2" implementation "androidx.paging:paging-runtime:$paging_version" // alternatively - without Android dependencies for tests testImplementation "androidx.paging:paging-common:$paging_version" // optional - RxJava2 support implementation "androidx.paging:paging-rxjava2:$paging_version" // optional - RxJava3 support implementation "androidx.paging:paging-rxjava3:$paging_version" // optional - Guava ListenableFuture support implementation "androidx.paging:paging-guava:$paging_version" // optional - Jetpack Compose integration implementation "androidx.paging:paging-compose:3.3.2" }
Kotlin
dependencies { val paging_version = "3.3.2" implementation("androidx.paging:paging-runtime:$paging_version") // alternatively - without Android dependencies for tests testImplementation("androidx.paging:paging-common:$paging_version") // optional - RxJava2 support implementation("androidx.paging:paging-rxjava2:$paging_version") // optional - RxJava3 support implementation("androidx.paging:paging-rxjava3:$paging_version") // optional - Guava ListenableFuture support implementation("androidx.paging:paging-guava:$paging_version") // optional - Jetpack Compose integration implementation("androidx.paging:paging-compose:3.3.2") }
Bibliotheksarchitektur
Die Komponenten der Paging-Bibliothek werden in drei Schichten Ihrer App ausgeführt:
- Die Repository-Ebene
- Die Ebene
ViewModel
- Die UI-Ebene
In diesem Abschnitt werden die Komponenten der Paging-Bibliothek beschrieben, die auf jeder Ebene ausgeführt werden, und wie sie zusammenarbeiten, um gepufferte Daten zu laden und anzuzeigen.
Repository-Ebene
Die primäre Paging-Bibliothekskomponente in der Repository-Ebene ist PagingSource
. Jedes PagingSource
-Objekt definiert eine Datenquelle und wie Daten aus dieser Quelle abgerufen werden. Ein PagingSource
-Objekt kann Daten aus einer beliebigen Quelle laden, einschließlich Netzwerkquellen und lokalen Datenbanken.
Eine weitere Komponente der Paging-Bibliothek, die Sie verwenden können, ist RemoteMediator
. Ein RemoteMediator
-Objekt verarbeitet das Auslagern aus einer mehrschichtigen Datenquelle, z. B. einer Netzwerkdatenquelle mit einem lokalen Datenbankcache.
ViewModel-Ebene
Die Komponente Pager
bietet eine öffentliche API zum Erstellen von Instanzen von PagingData
, die in reaktiven Streams bereitgestellt werden, basierend auf einem PagingSource
-Objekt und einem PagingConfig
-Konfigurationsobjekt.
Die Komponente, die die ViewModel
-Ebene mit der Benutzeroberfläche verbindet, ist PagingData
. Ein PagingData
-Objekt ist ein Container für einen Snapshot von paginaten Daten. Es wird ein PagingSource
-Objekt abgefragt und das Ergebnis gespeichert.
UI-Ebene
Die primäre Paging-Bibliothekskomponente in der UI-Ebene ist PagingDataAdapter
, ein RecyclerView
-Adapter, der paginated Daten verarbeitet.
Alternativ können Sie die enthaltene Komponente AsyncPagingDataDiffer
verwenden, um einen eigenen benutzerdefinierten Adapter zu erstellen.
Weitere Informationen
Weitere Informationen zur Paging-Bibliothek finden Sie in den folgenden zusätzlichen Ressourcen:
Codelabs
- Codelab zu den Grundlagen der Android-Paging-Technologie
- Codelab: Android-Paging – Fortgeschrittene Themen
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Seitenbasierte Daten laden und anzeigen
- Zu Paging 3 migrieren
- Seite aus Netzwerk und Datenbank