A navegação se refere às interações que permitem aos usuários navegar, entrar e sair de diferentes partes do conteúdo no app.
O componente Navigation do Android Jetpack inclui a biblioteca Navigation, o plug-in Safe Args do Gradle e ferramentas para ajudar você a implementar a navegação no app. O componente Navigation processa diversos casos de uso de navegação, desde cliques simples em botões até padrões mais complexos, como barras de apps e a gaveta de navegação.
estabelecido.Principais conceitos
A tabela a seguir fornece uma visão geral dos principais conceitos da navegação e os principais tipos usados para implementá-los.
Conceito |
Objetivo |
Tipo |
---|---|---|
Host |
Um elemento da interface que contém o destino de navegação atual. Ou seja, quando um usuário navega em um app, o app basicamente troca os destinos dentro e fora do host de navegação. |
|
Gráfico |
Uma estrutura de dados que define todos os destinos de navegação no app e como eles se conectam. |
|
Controlador |
O coordenador central para gerenciar a navegação entre destinos. O controlador oferece métodos para navegar entre destinos, processar links diretos, gerenciar a backstack e muito mais. |
|
Destino |
Um nó no gráfico de navegação. Quando o usuário navega até esse nó, o host mostra o conteúdo dele. |
Normalmente, é criado ao construir o gráfico de navegação. |
Rota |
Identifica exclusivamente um destino e todos os dados necessários. Você pode navegar usando rotas. As rotas levam você aos destinos. |
Qualquer tipo de dados serializável. |
Benefícios e recursos
O componente Navigation oferece vários outros benefícios e recursos, incluindo:
- Animações e transições: fornecem recursos padronizados para animações e transições.
- Link direto: implementa e processa links diretos que levam o usuário diretamente a um destino.
- Padrões de interface: oferece suporte a padrões, como as gavetas de navegação e a navegação de nível baixo, com o mínimo de trabalho extra.
- Segurança de tipos:inclui suporte para transmissão de dados entre destinos com segurança de tipos.
- Suporte ao ViewModel: permite definir o escopo de um
ViewModel
para um gráfico de navegação para compartilhar dados relacionados à interface entre os destinos do gráfico. - Transações de fragmentos: oferecem suporte e processam totalmente transações de fragmentos.
- Voltar e subir: processa ações de voltar e subir corretamente por padrão.
Configurar o ambiente
Para incluir suporte à navegação no seu projeto, adicione as dependências abaixo
ao arquivo build.gradle
do seu app:
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21' } dependencies { def nav_version = "2.8.8" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" // Views/Fragments Integration implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Feature module support for Fragments implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // JSON serialization library, works with the Kotlin serialization plugin. implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3" }
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments kotlin("plugin.serialization") version "2.0.21" } dependencies { val nav_version = "2.8.8" // Jetpack Compose integration implementation("androidx.navigation:navigation-compose:$nav_version") // Views/Fragments integration implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Feature module support for Fragments implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // JSON serialization library, works with the Kotlin serialization plugin implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") }
Para informações sobre como adicionar outros componentes de arquitetura ao projeto, consulte Como adicionar componentes ao seu projeto.
Próximas etapas
Para conferir mais documentações e recursos relacionados ao componente Navigation, consulte as informações abaixo.
Guias detalhados
Para mais informações sobre como implementar um host de navegação e um NavController
,
bem como detalhes sobre como eles interagem com o Compose e outros frameworks de interface, consulte
os guias abaixo:
- Criar um controlador de navegação: descreve como criar um
NavController
. - Criar um gráfico de navegação: detalha como criar um host e um gráfico de navegação.
- Navegar para um destino: demonstra como usar um
NavController
para se mover entre os destinos no gráfico.
Codelabs
- Aprender a usar a navegação no Jetpack
- Fragmentos e o componente de navegação
- Criar um app adaptável com a navegação dinâmica
Vídeos (em inglês)
- Navegação
- 10 práticas recomendadas para migrar para uma atividade única
- Atividade única: por que, quando e como (Conferência de Desenvolvedores Android 2018)
- Android Jetpack: gerenciar a navegação da interface com o Controlador de navegação (Google I/O '18)
Exemplos
Aprenda a implementar configurações gerenciadas que podem ser alteradas por outros apps no mesmo dispositivo. Os recursos empresariais do Android oferecem às organizações uma experiência segura, flexível e plataforma de mobilidade unificada do Android, combinando dispositivos, aplicativos e gerenciamento de conteúdo. Os apps Android são compatíveis com os Siga algumas práticas recomendadas para garantir que seus apps funcionem sem problemas em um ambiente corporativo.Definir configurações gerenciadas
Guia para desenvolvedores
Perfis de trabalho