Navegação 3

O Navigation 3 é uma biblioteca de navegação projetada para funcionar com o Compose. Com o Navigation 3, você tem controle total sobre a backstack e navega entre destinos adicionando e removendo itens de uma lista. Ele cria um sistema de navegação de app flexível ao fornecer:

  • Convenções para modelar uma backstack, em que cada entrada representa o conteúdo que o usuário acessou.
  • Uma interface que é atualizada automaticamente com mudanças no backstack (incluindo animações)
  • Um escopo para itens na backstack, permitindo que o estado seja retido enquanto um item está na backstack
  • Um sistema de layout adaptável que permite mostrar vários destinos ao mesmo tempo, possibilitando a troca perfeita entre esses layouts
  • Um mecanismo para o conteúdo se comunicar com o layout principal (metadados)
  • Comunicação entre destinos para retornar resultados entre telas

Em geral, você implementa a navegação 3 das seguintes maneiras:

  1. Defina o conteúdo que os usuários podem acessar no app, cada um com uma chave exclusiva, e adicione uma função para resolver essa chave no conteúdo. Consulte Resolver chaves para conteúdo.
  2. Crie um backstack em que as chaves são inseridas e removidas à medida que os usuários navegam pelo app. Consulte Criar um backstack.
  3. Use um NavDisplay para mostrar o backstack do app. Sempre que a pilha de retorno muda, ela atualiza a interface para mostrar o conteúdo relevante. Consulte Mostrar o backstack.
  4. Modifique as estratégias de cena do NavDisplay conforme necessário para compatibilidade com layouts adaptáveis e diferentes plataformas.
  5. Ofereça suporte a links diretos para navegar diretamente até os destinos.

Confira o código-fonte completo da Navegação 3 no AOSP.

Melhorias na navegação do Jetpack

A Navegação 3 melhora a API Jetpack Navigation original das seguintes maneiras:

  • Oferece uma integração mais simples com o Compose
  • Oferece controle total do backstack
  • Permite criar layouts que podem ler mais de um destino da backstack ao mesmo tempo, permitindo que eles se adaptem a mudanças no tamanho da janela e outras entradas.

Leia mais sobre os princípios e as opções de design da API do Navigation 3 na postagem do blog de anúncio.

Amostras de código

O repositório de receitas contém exemplos de como usar os blocos de construção do Navigation 3 para resolver desafios comuns de navegação.