Visão geral da biblioteca Paging Parte do Android Jetpack.
A biblioteca Paging ajuda a carregar e mostrar páginas de um conjunto de dados maior do armazenamento local ou da rede. Essa abordagem permite que o app use a largura de banda da rede e os recursos do sistema de modo mais eficiente. Os componentes da biblioteca Paging foram projetados para se ajustar à arquitetura de apps Android recomendada, integrar-se de forma limpa a outros componentes do Jetpack e fornecer suporte de alto nível ao Kotlin.
Benefícios do uso da biblioteca Paging
A biblioteca Paging inclui os seguintes recursos:
- Armazenamento em cache na memória dos dados paginados. Isso garante que seu app use recursos do sistema de maneira eficiente enquanto trabalha com dados paginados.
- Eliminação de duplicação de solicitações incorporadas, o que ajuda a garantir que seu app use a largura de banda da rede e os recursos do sistema de forma eficiente.
- Adaptadores
RecyclerView
configuráveis que solicitam automaticamente os dados à medida que o usuário rola para o final dos dados carregados. - Suporte de alto nível a corrotinas e fluxos do Kotlin, além de
LiveData
e RxJava. - Suporte integrado ao tratamento de erros, incluindo recursos de atualização e repetição.
Enviar feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver sugestões para melhorar essa biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para mais informações sobre como enviar feedback.
Configurar
Para importar componentes da biblioteca Paging para seu app Android, adicione as seguintes
dependências ao arquivo build.gradle
do app:
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") }
Arquitetura da biblioteca
Os componentes da biblioteca Paging operam em três camadas do app:
- Camada de repositório
- Camada
ViewModel
- Camada da interface
Esta seção descreve os componentes da biblioteca Paging que operam em cada camada e como eles funcionam juntos para carregar e exibir dados paginados.
Camada de repositório
O principal componente da biblioteca Paging na camada de repositório é
PagingSource
. Cada
objeto PagingSource
define uma fonte de dados e como recuperar
dados dela. Um objeto PagingSource
pode carregar dados de uma única fonte,
incluindo fontes de rede e bancos de dados locais.
Outro componente da biblioteca Paging que você pode usar é
RemoteMediator
. Um
objeto RemoteMediator
processa a paginação de uma fonte de dados em camadas, como uma
fonte de dados de rede com um cache de banco de dados local.
Camada ViewModel
O componente Pager
fornece uma
API pública para criar instâncias de PagingData
que são expostas em
fluxos reativos, com base em um objeto PagingSource
e em um
objeto de configuração
PagingConfig
.
O componente que conecta a camada ViewModel
à IU é
PagingData
. Um objeto PagingData
é um contêiner para um snapshot de dados paginados. Ele consulta um objeto
PagingSource
e
armazena o resultado.
Camada de IU
O componente principal da biblioteca Paging na camada da IU é
PagingDataAdapter
, um
adaptador RecyclerView
que processa dados paginados.
Se preferir, use o componente
AsyncPagingDataDiffer
incluído para criar seu próprio adaptador personalizado.
Outros recursos
Para saber mais sobre a biblioteca Paging, consulte os seguintes recursos extras:
Codelabs
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Carregar e exibir dados paginados
- Migrar para a Paging 3
- Página da rede e do banco de dados