Paging-Bibliothek – Übersicht Teil von Android Jetpack
Mit der Paging-Bibliothek können Sie Seiten mit Daten aus einem größeren Dataset aus dem lokalen Speicher oder über ein Netzwerk laden und anzeigen lassen. Mit diesem Ansatz kann Ihre Anwendung 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, problemlos in andere Jetpack-Komponenten eingebunden werden können und erstklassigen Kotlin-Support bieten.
Vorteile der Paging-Bibliothek
Die Paging-Bibliothek umfasst die folgenden Funktionen:
- In-Memory-Caching für ausgelagerte Daten Dadurch wird sichergestellt, dass Ihre Anwendung Systemressourcen effizient nutzt, während sie mit ausgelagerten Daten arbeitet.
- Die integrierte Anfragededuplizierung trägt dazu bei, dass Ihre Anwendung 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 Fehlerbehandlung, einschließlich Aktualisierungs- und Wiederholungsfunktionen.
Feedback geben
Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Prüfen Sie die vorhandenen Probleme für diese Bibliothek, bevor Sie eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.
Weitere Informationen zum Senden von Feedback finden Sie in der Dokumentation zum Issue Tracker.
Einrichten
Fügen Sie der Datei build.gradle
der App die folgenden Abhängigkeiten hinzu, um Paging-Komponenten in Ihre Android-App zu importieren:
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 sind auf drei Ebenen Ihrer Anwendung verteilt:
- Repository-Ebene
ViewModel
-Ebene- UI-Ebene
In diesem Abschnitt werden die Komponenten der Paging-Bibliothek, die auf jeder Ebene ausgeführt werden, und ihr Zusammenwirken beim Laden und Anzeigen von ausgelagerten Daten beschrieben.
Repository-Ebene
Die primäre Komponente der Paging-Bibliothek auf 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 einzelnen Quelle laden, einschließlich Netzwerkquellen und lokalen Datenbanken.
Eine weitere Komponente der Auslagerungsbibliothek ist RemoteMediator
. Ein RemoteMediator
-Objekt verarbeitet das Paging aus einer mehrschichtigen Datenquelle, z. B. einer Netzwerkdatenquelle mit einem lokalen Datenbankcache.
ViewModel-Ebene
Die Komponente Pager
bietet eine öffentliche API zum Erstellen von PagingData
-Instanzen, die in reaktiven Streams verfügbar gemacht werden. Sie basieren auf einem PagingSource
-Objekt und einem PagingConfig
-Konfigurationsobjekt.
Die Komponente, die die ViewModel
-Ebene mit der UI verbindet, ist PagingData
. Ein PagingData
-Objekt ist ein Container für einen Snapshot paginierter Daten. Sie fragt ein PagingSource
-Objekt ab und speichert das Ergebnis.
UI-Ebene
Die primäre Komponente der Paging-Bibliothek auf der UI-Ebene ist PagingDataAdapter
, ein RecyclerView
-Adapter, der paginierte 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 Ressourcen:
Codelabs
Produktproben
- Beispiel für das Paging mit den Android-Architekturkomponenten
- Beispiel für das Paging mit Android-Architekturkomponenten
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Auslagerungsdaten laden und anzeigen
- Migration zu Paging 3
- Seite aus Netzwerk und Datenbank