Présentation de la bibliothèque Paging Fait partie d'Android Jetpack.
La bibliothèque Paging vous permet de charger et d'afficher des pages de données depuis un ensemble de données plus volumineux, à partir d'un espace de stockage local ou sur réseau. Cette approche permet à votre application d'utiliser plus efficacement la bande passante réseau et les ressources système. Les composants de la bibliothèque Paging s'adaptent à l'architecture des applications Android recommandée, s'intègrent parfaitement aux autres composants Jetpack et offrent une excellente compatibilité avec Kotlin.
Avantages de la bibliothèque Paging
La bibliothèque Paging inclut les fonctionnalités suivantes :
- Mise en cache en mémoire pour vos données paginées. Cela garantit que votre application utilise efficacement les ressources système lorsqu'elle travaille avec des données paginées.
- Déduplication des requêtes intégrée, qui permet de garantir que votre application utilise efficacement la bande passante réseau et les ressources système
- Adaptateurs
RecyclerView
configurables, lesquels demandent automatiquement des données lorsque l'utilisateur fait défiler la page jusqu'à la fin des données chargées - Excellente compatibilité avec les coroutines et les flux Kotlin, ainsi qu'avec
LiveData
et RxJava - Assistance intégrée pour la gestion des exceptions avec fonctionnalités d'actualisation et de nouvelle tentative
Envoyer des commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Vérifiez les problèmes existants de cette bibliothèque avant d'en créer un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus sur l'envoi de commentaires, consultez la documentation sur l'outil Issue Tracker.
Configurer
Pour importer des composants Paging dans votre application Android, ajoutez les dépendances suivantes au fichier build.gradle
de votre application :
Groovy
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") }
Architecture de la bibliothèque
Les composants de la bibliothèque Paging fonctionnent dans trois couches de votre application :
- La couche de dépôt
- La couche
ViewModel
- La couche de l'UI
Cette section décrit les composants de la bibliothèque Paging utilisés dans chaque couche, et explique comment ils fonctionnent ensemble pour charger et afficher les données paginées.
Couche de dépôt
PagingSource
est le composant principal de la bibliothèque Paging dans la couche du dépôt. Chaque objet PagingSource
définit une source de données et explique comment les récupérer. Un objet PagingSource
peut charger des données à partir de n'importe quelle source, y compris des sources réseau et des bases de données locales.
Vous pouvez également utiliser le composant RemoteMediator
de la bibliothèque Paging. Un objet RemoteMediator
gère la pagination à partir d'une source de données multicouche, telle qu'une source de données réseau avec un cache de base de données locale.
Couche ViewModel
Le composant Pager
fournit une API publique pour créer des instances de PagingData
exposées dans des flux réactifs en fonction d'un objet PagingSource
et d'un objet de configuration PagingConfig
.
PagingData
est le composant qui associe la couche ViewModel
à l'UI. Un objet PagingData
est un conteneur pour un instantané de données paginées. Il interroge un objet PagingSource
et stocke le résultat.
Couche de l'interface utilisateur
Composant principal de la bibliothèque Paging dans la couche de l'UI, PagingDataAdapter
est un adaptateur RecyclerView
qui gère les données paginées.
Vous pouvez également utiliser le composant AsyncPagingDataDiffer
inclus pour créer un adaptateur personnalisé.
Ressources supplémentaires
Pour en savoir plus sur la bibliothèque Paging, consultez ces ressources supplémentaires :
Ateliers de programmation
- Atelier de programmation sur les principes de base d'Android Paging
- Atelier de programmation avancé sur Android Paging
Exemples
- Exemple de pagination de composants d'architecture Android
- Exemple de pagination des composants d'architecture Android avec réseau
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé
- Charger et afficher des données paginées
- Effectuer une migration vers Paging 3
- Page du réseau et de la base de données