Panoramica della libreria di paging Parte di Android Jetpack.
La libreria di paging consente di caricare e visualizzare pagine di dati da un set di dati più grande dallo spazio di archiviazione locale o su una rete. Questo approccio consente alla tua app di utilizzare sia la larghezza di banda della rete sia le risorse di sistema in modo più efficiente. I componenti della libreria Paging sono progettati per adattarsi all'architettura delle app Android consigliata, si integrano in modo pulito con altri componenti Jetpack e forniscono un supporto Kotlin di prima qualità.
Vantaggi dell'utilizzo della libreria di paging
La libreria di paging include le seguenti funzionalità:
- Memorizzazione nella cache dei dati impaginati. Questo contribuisce a garantire che la tua app utilizzi le risorse di sistema in modo efficiente mentre lavori con i dati impaginati.
- Deduplicazione integrata delle richieste, che aiuta a garantire che l'app utilizzi la larghezza di banda della rete e le risorse di sistema in modo efficiente.
- Adattatori
RecyclerView
configurabili che richiedono automaticamente i dati man mano che l'utente scorre verso la fine dei dati caricati. - Assistenza di primo livello per coroutine e flussi Kotlin, nonché per
LiveData
e RxJava. - Supporto integrato per la gestione degli errori, incluse funzionalità di aggiornamento e nuovo tentativo.
Fornisci feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Contattaci se scopri nuovi problemi o hai idee per migliorare la libreria. Controlla i problemi esistenti per questa libreria prima di crearne una nuova. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Consulta la documentazione di Issue Tracker per ulteriori informazioni sull'invio di feedback.
Configurazione
Per importare i componenti di Paging nella tua app Android, aggiungi le seguenti
dipendenze al file build.gradle
dell'app:
Groovy
dependencies { def paging_version = "3.3.4" 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.4" }
Kotlin
dependencies { val paging_version = "3.3.4" 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.4") }
Architettura delle biblioteche
I componenti della libreria di Paging operano in tre livelli della tua app:
- Il livello del repository
- Il livello
ViewModel
- Il livello UI
Questa sezione descrive i componenti della libreria di Paging che operano a ogni livello e il modo in cui funzionano insieme per caricare e visualizzare i dati impaginati.
Livello repository
Il componente principale della libreria di paging nel livello del repository è PagingSource
. Ogni oggetto PagingSource
definisce un'origine dei dati e il modo in cui recuperarli. Un oggetto PagingSource
può caricare dati da qualsiasi singola origine, inclusi origini di rete e database locali.
Un altro componente della libreria di Paging che potresti utilizzare è RemoteMediator
. Un oggetto RemoteMediator
gestisce il paging da un'origine dati a più livelli, ad esempio un'origine dati di rete con una cache di database locale.
Livello ViewModel
Il componente Pager
fornisce un'API pubblica per la creazione di istanze di PagingData
esposte nei flussi reattivi, in base a un oggetto PagingSource
e un oggetto di configurazione PagingConfig
.
Il componente che collega il livello ViewModel
all'interfaccia utente è PagingData
. Un oggetto PagingData
è un contenitore per un'istantanea di dati impaginati. Esegue una query su un oggetto PagingSource
e archivia il risultato.
Livello UI
Il componente principale della libreria di paging nel livello dell'interfaccia utente è PagingDataAdapter
, un adattatore RecyclerView
che gestisce i dati impaginati.
In alternativa, puoi usare il componente
AsyncPagingDataDiffer
incluso per creare il tuo adattatore personalizzato.
Risorse aggiuntive
Per saperne di più sulla libreria Paging, consulta le seguenti risorse aggiuntive:
Codelab
- Codelab relativo alle nozioni di base sulla creazione di pagine Android
- Codelab avanzato per paging Android
Samples
- Esempio di paging dei componenti dell'architettura Android
- Esempio di Paging dei componenti dell'architettura Android con la rete
Consigliato per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Caricare e visualizzare i dati impaginati
- Eseguire la migrazione a Paging 3
- Pagina dalla rete e dal database