Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Navigation 3 — это новая навигационная библиотека, разработанная для работы с Compose. С Navigation 3 вы получаете полный контроль над своим стеком переходов, а навигация к пунктам назначения и от них так же проста, как добавление и удаление элементов из списка. Она создает гибкую систему навигации приложений, предоставляя:
Соглашения для моделирования стека переходов назад, где каждая запись в стеке переходов представляет собой контент, к которому перешел пользователь
Пользовательский интерфейс, который автоматически обновляется при изменении стека переходов (включая анимацию)
Область действия для элементов в стеке переходов назад, позволяющая сохранять состояние, пока элемент находится в стеке переходов назад.
Адаптивная система макетов, которая позволяет отображать несколько пунктов назначения одновременно и обеспечивает плавное переключение между этими макетами.
Механизм взаимодействия контента с родительским макетом (метаданные)
На высоком уровне вы реализуете Навигацию 3 следующими способами:
Определите контент, к которому пользователи могут перейти в вашем приложении, каждый с уникальным ключом, и добавьте функцию для разрешения этого ключа к контенту. См. Разрешение ключей к контенту .
Создайте стек назад, на который нажимаются и удаляются клавиши, когда пользователи перемещаются по вашему приложению. См. Создание стека назад .
Используйте NavDisplay для отображения back stack вашего приложения. Всякий раз, когда back stack изменяется, он обновляет пользовательский интерфейс для отображения соответствующего контента. См. Отображение back stack .
При необходимости измените стратегии сценыNavDisplay для поддержки адаптивных макетов и различных платформ.
Navigation 3 улучшает оригинальный API навигации Jetpack следующим образом:
Обеспечивает более простую интеграцию с Compose
Предоставляет вам полный контроль над стеком
Позволяет создавать макеты, которые могут считывать более одного адресата из стека одновременно, что позволяет им адаптироваться к изменениям размера окна и другим входным данным.
Подробнее о принципах Navigation 3 и вариантах дизайна API читайте в этой записи блога .
Примеры кода
Репозиторий рецептов содержит примеры использования строительных блоков Navigation 3 для решения распространенных задач навигации.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 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."]]