Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A Navigation 3 é uma nova biblioteca de navegação projetada para funcionar com o Compose. Com a
Navigation 3, você tem controle total sobre a backstack, e navegar para e
de destinos é tão simples quanto adicionar e remover itens de uma lista. Ele
cria um sistema flexível de navegação de apps com:
Convenções para modelar uma backstack, em que cada entrada na backstack
representa o conteúdo para o qual o usuário navegou
Uma interface que é atualizada automaticamente com mudanças na 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 que vários destinos sejam exibidos ao
mesmo tempo e que permite alternar sem problemas entre esses layouts
Um mecanismo para o conteúdo se comunicar com o layout pai (metadados)
Em um nível alto, você implementa a Navegação 3 das seguintes maneiras:
Defina o conteúdo para o qual os usuários podem navegar no app, cada um com uma chave
única, e adicione uma função para resolver essa chave no conteúdo. Consulte Resolver chaves
de conteúdo.
Crie uma backstack em que as chaves sejam enviadas e removidas conforme os usuários navegam
pelo app. Consulte Criar uma backstack.
Use um NavDisplay para mostrar a backstack do app. Sempre que a backstack
muda, ela atualiza a interface para mostrar conteúdo relevante. Consulte Mostrar
a backstack.
Modifique as estratégias de cena do NavDisplay conforme necessário para
oferecer suporte a layouts adaptáveis e diferentes plataformas.
A Navigation 3 melhora a API Jetpack Navigation original das seguintes
maneiras:
Oferece uma integração mais simples com o Compose
Oferece controle total da 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 da Navigation 3 e as escolhas de design de API nesta postagem
do blog.
Exemplos de código
O repositório de receitas contém exemplos de como usar os
blocos de construção da Navigation 3 para resolver desafios comuns de navegação.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Navigation 3\n\n| **Experimental:** Navigation 3 is in alpha. The APIs may change in the future. Please file bugs and feedback using the [issue tracker](https://issuetracker.google.com/issues/new?component=1750212&template=2102223).\n\nNavigation 3 is a new navigation library designed to work with Compose. With\nNavigation 3, you have full control over your back stack, and navigating to and\nfrom destinations is as simple as adding and removing items from a list. It\ncreates a flexible app navigation system by providing:\n\n- Conventions for modeling a back stack, where each entry on the back stack represents content that the user has navigated to\n- A UI that automatically updates with back stack changes (including animations)\n- A scope for items in the back stack, allowing state to be retained while an item is in the back stack\n- An adaptive layout system that allows multiple destinations to be displayed at the same time, and allowing seamless switching between those layouts\n- A mechanism for content to communicate with its parent layout (metadata)\n\nAt a high level, you implement Navigation 3 in the following ways:\n\n1. Define the content that users can navigate to in your app, each with a unique key, and add a function to resolve that key to the content. See [Resolve keys\n to content](/guide/navigation/navigation-3/basics#resolve-keys).\n2. Create a back stack that keys are pushed onto and removed as users navigate your app. See [Create a back stack](/guide/navigation/navigation-3/basics#create-back).\n3. Use a [`NavDisplay`](/reference/kotlin/androidx/navigation3/ui/package-summary#NavDisplay(kotlin.collections.List,androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Function1,kotlin.collections.List,androidx.navigation3.ui.SceneStrategy,androidx.compose.animation.SizeTransform,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)) to display your app's back stack. Whenever the back stack changes, it updates the UI to display relevant content. See [Display\n the back stack](/guide/navigation/navigation-3/basics#display-back).\n4. Modify `NavDisplay`'s [scene strategies](/guide/navigation/navigation-3/custom-layouts) as needed to support adaptive layouts and different platforms.\n\nYou can see the [full source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:navigation3/) for Navigation 3 on AOSP.\n\nImprovements upon Jetpack Navigation\n------------------------------------\n\nNavigation 3 improves upon the original Jetpack Navigation API in the following\nways:\n\n- Provides a simpler integration with Compose\n- Offers you full control of the back stack\n- Makes it possible to create layouts that can read more than one destination from the back stack at the same time, allowing them to adapt to changes in window size and other inputs.\n\nRead more about Navigation 3's principles and API design choices in [this blog\npost](https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html).\n\nCode samples\n------------\n\nThe [recipes repository](https://github.com/android/nav3-recipes) contains examples of how to use the\nNavigation 3 building blocks to solve common navigation challenges."]]