навигация3
| Последнее обновление | Стабильный релиз | Предварительная версия релиза | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 25 февраля 2026 г. | 1.0.1 | - | - | 1.1.0-alpha05 |
Объявление зависимостей
Чтобы добавить зависимость от navigation3, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Круто
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.1.0-alpha05" implementation "androidx.navigation3:navigation3-ui:1.1.0-alpha05" }
Котлин
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.1.0-alpha05") implementation("androidx.navigation3:navigation3-ui:1.1.0-alpha05") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Для этого артефакта отсутствуют примечания к выпуску.
Версия 1.1
Версия 1.1.0-alpha05
25 февраля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha05 . Версия 1.1.0-alpha05 содержит следующие коммиты .
Изменения в API
- Теперь
NavDisplayиrememberSceneStateпринимаютList<SceneStrategy>вместо прежнего единственного параметраSceneStrategy, который был связан с помощьюthenинфикса. Это более точно соответствуетList<SceneDecoratorStrategy<T>>, который уже принимают обе эти функции API. Предыдущие функции API устарели. ( I78b2c , b/482108465 ) - Добавлен оператор #contains для проверки наличия в карте метаданных заданного
NavMetadataKey. ( Ic30db , b/485311895 ) - Добавлен ключ
NavMetadataKeyDialogKeyдляDialogSceneStrategyдля использования с DSL метаданных. ( Ic7a26 , b/483388817 )
Версия 1.1.0-alpha04
11 февраля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha04 . Версия 1.1.0-alpha04 содержит следующие коммиты .
Новые функции
- В Navigation3 теперь доступен новый типобезопасный DSL для метаданных. DSL использует новый интерфейс
MetadataKey, позволяющий определять типы ключей и значений, которые необходимо передавать в карту метаданных. Также добавлены новыеNavMetadataKeyдля переходовNavDisplay, которые можно использовать с новым DSLmetadata, чтобы добавлять переходы вNavDisplay. ( Ic10ef , Ic049c , b/476213928 )
Изменения в API
- Интерфейс
OverlaySceneполучил новый приостанавливающий коллбэкonRemoved. Этот коллбэк вызывается после удаления ключа, связанного со сценой, из стека возврата, но до того, как сцена покинет композицию. Это позволяет анимациям выхода, вызываемым внутриonRemoved, завершиться до того, как сцена наложения будет удалена из композиции. ( I29a72 , b/440558061 ) -
SceneStrategyфункция декорирования выделена в новый классSceneDecoratorStrategy. Этот новый интерфейс следует использовать для декорирования сцен. Появились новые API дляNavDisplayиrememberSceneState, позволяющие добавлятьSceneDecoratorStrategies. ( If9385 , b/477669607 , b/477670333 )
Исправлены ошибки
- Исправлена ошибка, из-за которой передача
SharedTransitionLayoutвNavDisplayилиrememberSceneStateи использованиеOverlaySceneприводили к сбою, поскольку использованиеSharedTransitionLayoutработает только сNavEntries, которые отображаются как частьAnimatedContent, аOverlaySceneотображаются в отдельных окнах. ( I1bb76 , b/478664101 )
Обновление зависимостей
- Начиная с
Navigation31.0.1:Navigation3теперь зависит отNavigationEvent1.0.2. Это исправляет ошибкуIllegalStateExceptionвозникающую при использованииNavDisplayво время предварительного просмотраAndroidStudio. ( Id7212 , b/477149762 )
Версия 1.1.0-alpha03
28 января 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha03 . Версия 1.1.0-alpha03 содержит следующие коммиты .
Новые функции
- Теперь вы можете динамически добавлять метаданные с учетом ключа записи через DSL
EntryProvider. ( I942fb , b/474416976 )
Версия 1.1.0-alpha02
14 января 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит следующие коммиты .
Новые функции
-
SceneStrategyтеперь поддерживается вложенность сцен с помощью новой функцииcalculatedScene(Scene). Это означает, чтоSceneStrategyможно настраивать для предоставления дополнительной функциональности другим сценам. ( I5df7c , b/440333896 )
Версия 1.1.0-alpha01
3 декабря 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты .
Изменения в API
-
Navigation3теперь поддерживается обработка сцен как объектов с общими свойствами. Это означает, что при смене сцен можно обеспечить плавный переход. Включить эту функцию можно, передавSharedTransitionScopeлибо вNavDisplay, либо вrememberSceneState. ( I15868 )
Версия 1.0
Версия 1.0.1
11 февраля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.1 . Версия 1.0.1 содержит следующие коммиты .
Обновление зависимостей
- Теперь
Navigation3зависит отNavigationEvent1.0.2. Это исправляет ошибкуIllegalStateExceptionвозникающую при использованииNavDisplayво время предварительного просмотраAndroidStudio. ( Id7212 , b/477149762 )
Версия 1.0.0
19 ноября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0 . Версия 1.0.0 содержит следующие коммиты .
Представляем Navigation3!
- Библиотека Navigation3 теперь стабильна! Navigation3 — это подход к навигации, основанный на AndroidX Compose.
- Для получения более подробной информации ознакомьтесь с нашим сообщением в блоге , посетите раздел ресурсов и попробуйте рецепты .
Версия 1.0.0-rc01
5 ноября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты .
Исправлены ошибки
- Теперь
NavDisplayустанавливаетLocalLifecycleOwnerна уровнеScene, что позволяет авторам сцен определять, завершились ли все переходы, проверяя, чтоLifecycle.StateимеетRESUMED. ПоведениеLocalLifecycleOwnerна уровнеNavEntryостается неизменным: он по-прежнему ограничен значениемSTARTED, если переход находится в процессе, и дополнительно ограничен значениемCREATEDесли этотNavEntryбыл удален из стека возврата и находится в процессе анимации. ( I03113 , b/454045829 )
Версия 1.0.0-beta01
22 октября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты .
Изменения в API
- Теперь у
SceneStrategyScopeесть только публичный конструктор без аргументов, подходящий для тестирования вашейSceneStrategyи возвращаемойSceneпо отдельности. Для более сложных случаев использования, пожалуйста, используйтеrememberSceneState(). ( I8440c , b/451679047 )
Исправлены ошибки
- Исправлена ошибка бесконечного цикла при последовательном использовании
SceneStrategyсthen. ( Iba3f0 , b/450323470 ) - Исправлено мерцание экрана при перестановке
backStack, передаваемого вNavDisplay, и использовании анимаций. ( Ief7b5 , b/450967248 )
Версия 1.0.0-alpha11
8 октября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит следующие коммиты .
Изменения в API
- Метод
calculateSceneвSceneStrategyбольше не имеет@Composable. Вместо этого, рассмотрите возможность переноса этой работы в конструктор вашего методаSceneStrategy(т.е. в методrememberMySceneStrategy()), который позволяет полностью определить время жизни любых значенийrememberSaveableили операторов keyrememberна основе правильных значений. ( If1733 , b/448709506 ) - Параметр
onBackдляSceneStrategy.calculateSceneперемещен в новую область видимости получателяSceneStrategyScope, чтобы сделать более понятным, что это необязательный параметр, и предоставить точку расширения для будущих функций Navigation3. ( I3aea3 , b/448460407 ) - Функция
onBackпередаваемая вNavDisplayиSceneStrategyбольше не предоставляет параметрcount: Intуказывающий, когда следует удалять несколько элементов. Вместо этого функция() -> Unitтеперь будет вызываться несколько раз подряд в редких случаях, когда ваша сцена запрашивает удаление нескольких элементов. ( Idedb5 , b/446989346 ) - Удалите класс
NavEntryWrapperи замените его функциональность финальным классомNavEntryс новым вторичным конструктором, который принимает объектNavEntryс новым содержимым. Это позволит продолжить поддержку обертывания записи новым содержимым. ( I7da2a , b/444447130 ) - Функция
navEntryDecorator, которая создает и возвращает объектNavEntryDecorator, была удалена и заменена классомNavEntryDecorator, который теперь является публичным и открытым для наследования. ( If81f8 , b/444447434 , b/447381176 ) -
SavedStateNavEntryDecoratorбыл переименован вSaveableStateHolderNavEntryDecoratorпоскольку он декорирует элементы с помощьюSaveableStateHolder. Кроме того, декоратор был преобразован из функции в класс, поскольку по своей сути он является фабрикой дляNavEntryDecorator. ( Ie6013 , b/447381176 ) - Для пользовательских дисплеев, использующих
SceneStateв качестве альтернативыNavDisplayбольше не требуется использовать локальную переменную композицииLocalEntriesToRenderInCurrentScene, которая теперь является внутренней. ( Ic40ef , b/414668196 ) - Удалены
SceneSetupNavEntryDecoratorиrememberSceneSetupNavEntryDecorator()из публичного API. Теперь эта функциональность включена по умолчанию без необходимости ее ручного добавления. ( Ieae42 , b/444479133 ) - Теперь
NavEntry,DialogScene,SinglePaneSceneиSceneStateреализуют интерфейс equals. ( I96121 ) - В интерфейсе сцены появилось новое поле метаданных для добавления метаданных, специфичных для сцены, к NavDisplay. Это позволяет сцене переопределять метаданные в
NavDisplay, например, для переходов. ( I1fd96 , b/443955625 ) - Упростите сигнатуру
rememberNavBackStack, удалив избыточный параметр типа generic. Теперь функция принимаетvararg elements: NavKey. ( I03e45 ) - Анимации по умолчанию для
NavDisplayтеперь являются частью общего API, что позволяет вызывать их со всех платформ. ( I71af9 , b/447147159 ) - Переименуйте
EntryProviderBuilderвEntryProviderScope, чтобы точно отразить, что класс представляет собой Kotlin DSL, предоставляющий область видимости для созданияNavEntries. ( Ia7465 )
Исправлены ошибки
- Функция
rememberNavBackStack()теперь обеспечивает полиморфную сериализацию для NavKey и требует наличия пользовательскойSavedStateConfiguration, настроенной для корректного восстановления состояния. Документация KDoc была обновлена, чтобы отразить требование о том, что все подтипы NavKey должны быть зарегистрированы в предоставленном модуле SerializersModule. ( I6de37 , I782f2 , b/446664383 )
Версия 1.0.0-alpha10
24 сентября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит следующие коммиты .
Изменения в API
- Добавлена новая перегрузка
NavDisplay, которая принимает списокNavEntry<T>, помеченных атрибутомrememberDecoratedNavEntries. ( I4025b , b/441940314 ) - Перенесено
DialogSceneв новый пакет. ( Ia5840 ) - Удалите публичный API
DecorateNavEntry. Вместо этого используйтеrememberDecoratedNavEntries, чтобы обернуть NavEntry списком декораторов. ( Id8c09 ) - В Navigation3 UI теперь доступны новые свойства
transitionSpecпо умолчанию. ( Ibcabd ) - Добавлен новый объект
SceneStateдля управления сценами. Он также предоставляет новую перегрузкуNavDisplay, которая принимаетSceneStateиNavigationEventState. ( Idfb46 , b/444479133 ) - Теперь
NavDisplayпозволяет настраивать переходы в зависимости от того, в какуюSceneвы переходите и из какой, анализируяcurrentStateиtargetStateTransition. ( I906cc , b/443872322 ) -
NavigationEventInfoтеперь являетсяabstract classа неinterface. Обновите все пользовательские реализации, чтобы они наследовали от этого класса (например,data class MyInfo : NavigationEventInfo()). ( I1e59c , b/444734264 ) - API обработчиков
navigationevent-composeобновлены.NavigationEventHandlerиNavigationBackHandler(и их варианты) теперь поддерживают новую перегрузку, которая принимает поднятое состояниеNavigationEventState. Простые перегрузки (принимающиеcurrentInfo) сохранены и теперь используют эту новую модель состояния внутри. ( Ic3251 , b/444734264 ) - Все API-интерфейсы сцен были перенесены из navigation3-ui в navigation3-runtime. Это означает, что теперь они доступны на всех платформах, поддерживаемых navigation3-runtime. ( I431d0 , b/444449993 )
- Добавлена новая перегрузка
rememberDecoratedNavEntries, которая принимает списокNavEntryдля декорирования. Элементы ввода уже могут быть декорированы другими декораторами элементов. ( I5a034 , b/444230270 ) - Удалить параметры типа подстановки navigation3 ( I02540 )
- Улучшена обработка обобщенных типов для DSL
entryProvider. Если ранее вы импортировалиandroidx.navigation3.runtime.entry, теперь это не требуется. ( I299fc ) - Ограничьте использование перегрузки
NavBackStackSerializerоснованной на рефлексии, только платформами Android. Это предотвратит неявные ошибки сериализации во время выполнения на платформах, отличных от Android, путем принудительного использования явной перегрузкиSavedStateConfigurationв многоплатформенном коде. ( I73313 , b/420443609 ) - Сделайте свойство `
swipeEdgeобъекта `NavigationEvent@IntDef( `Icee54` , b/443950342` ) - Ограничьте сериализацию
NavBackStackтолько Android. Это предотвратит сбои во время выполнения на платформах, отличных от Android. Для сохранения состояния на нескольких платформах используйте перегрузкуrememberNavBackStackс явным указаниемSavedStateConfiguration. ( I1e418 , b/420443609 )
Исправлены ошибки
- Исправлена ошибка, приводящая к сбою во время предиктивной возврата, когда вложенный
NavDisplayимеет только одну дочернюю запись. ( I2cdc0 , b/441933162 )
Версия 1.0.0-alpha09
10 сентября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит следующие коммиты .
Изменения в API
- Объект
DecoratedNavEntryProviderбыл заменен наrememberDecoratedNavEntries, который создает и возвращает NavEntries, декорированные списком предоставленных декораторов ( I0fe1c , b/441328236 ). - Теперь
NavBackStackявляется универсальным типом по отношению кNavKey. Это позволяет приложениям и библиотекам определять собственные типы клавиш для своих стеков возврата, а не ограничиваться толькоNavKey. ( I4d190 , Iad2f4 , b/420443609 ) -
NavBackStackтеперь имеет атрибут@kotlinx.serialization.Serializable, что позволяет сохранять и восстанавливать состояние навигации после завершения процесса и изменения конфигурации без лишнего шаблонного кода. ( I2c3cf , b/420443609 ) -
RememberNavBackStackбыла перенесена вcommonMain, чтобы гарантировать её доступность на всех целевых платформах. ( Id69e7 , b/420443609 )
Исправлены ошибки
- Теперь
NavDisplayкорректно перемещает каждый отдельный элементNavEntryв нужноеLifecycle.State. ( I30aac , b/440145700 ) - Исправлена ошибка, из-за которой
NavDisplayигнорировал любой вложенныйNavigationEventDispatcherOwner, установленный черезLocalNavigationEventDispatcherOwnerиз библиотекиNavigationEvent. ( I6224a )
Изменения зависимостей
- Теперь Navigation3 зависит от NavigationEvent Alpha08 .
Версия 1.0.0-alpha08
27 августа 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит следующие коммиты .
Новые функции
- Добавлены новые цели Kotlin MultiPlatform (KMP) для артефактов
Navigation3 Runtime. ТеперьNavigation3 Runtimeподдерживает следующие платформы: JVM (Android и Desktop), нативные приложения (Linux, iOS, watchOS, macOS, MinGW) и веб-приложения (JavaScript, WasmJS). ( I55078 , b/424410398 , b/419294028 , b/419046226 ). Примечание: это не предоставляет цели KMP для артефактаNavigation3 UI. На других платформах вам потребуется реализовать собственныйNavDisplay. Если вы хотите, чтобы это поддерживалось, пожалуйста, проголосуйте в этом вопросе на Jetbrains и следите за прогрессом в добавлении поддержки там. - Объект
NavDisplayInfoтеперь является публичным и может использоваться для получения списка видимых элементов изNavDisplay. ( Ibc91f )
Изменения в API
- Добавлен новый
NavBackStackSerializer, который можно использовать совместно сrememberNavBackStackдля восстановления состояния.rememberNavBackStack()теперь также принимаетSavedStateConfiguration, который можно использовать для предоставления собственной конфигурации. ( I2f4d2 , I4cd58 , b/420443609 )
Исправлены ошибки
- Исправлена ошибка, из-за которой при навигации некорректно срабатывали события жизненного цикла. ( I8bf6d , b/425901162 , b/434109022 )
Известные проблемы
- В версии I8bf6d была обнаружена ошибка, из-за которой жизненные циклы основывались на сценах, а не на отдельных элементах, что нарушало работу жизненного цикла в тех случаях, когда
keyпредоставленныйNavEntryне являетсяStringили вашNavEntryне переопределилcontentKeyи не присвоил ему значениеkey(обратите внимание, что это гарантирует возможность сохранения ключа вBundle). Эта ошибка исправлена в следующем релизе. ( b/440145700 )
Версия 1.0.0-alpha07
13 августа 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит следующие коммиты .
Обновление MinSdk
- Минимальный SDK по умолчанию для AndroidX был перенесен с API 21 на API 23 ( Ibdfca , b/380448311 , b/435705964 , b/435705223 ).
Изменения в API
- Теперь
SavedStateNavEntryDecoratorиспользуетSaveableStateRegistry, встроенный вSaveableStateProvider, для сохранения и восстановления состояний. ( If8d9a ) - В параметр
predictivePopTransitionSpecтеперь передается край свайпа, что позволяет настраивать переход в зависимости от того, с какого края пользователь начал жест «Предиктивный возврат». ( I753a8 )
Исправлены ошибки
- Исправлена ошибка, из-за которой пользовательские сцены бесконечно пересчитывались, поскольку последняя сцена не запоминалась. ( I7ba84 , b/418153031 )
Обновление зависимостей
- Теперь Navigation3 зависит от Navigation Event
1.0.0-alpha06.
Версия 1.0.0-alpha06
30 июля 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит следующие коммиты .
Обновление зависимостей
- Теперь Navigation3 зависит от Navigation Event
1.0.0-alpha05.
Версия 1.0.0-alpha05
2 июля 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит следующие коммиты .
Изменения в поведении
- Состояние
NavEntryтеперь строго зависит от текущего списка декораторов, переданных вNavDisplay. Это означает, что в случае наличия нескольких стеков возврата следует менять местами декораторы вдоль стеков возврата, чтобы сохранить состояние NavEntry в стеке возврата. В противном случае состояния будут очищены, как если бы элементы были удалены (вместо обмена). ( I7a759 , b/428033667 )
Версия 1.0.0-alpha04
18 июня 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты .
Изменения в API
-
NavEntry.contentтеперь является приватным. Для вызова содержимогоNavEntryиспользуйте новый APINavEntry.Content(), для вызова которого больше не требуется параметрkey. ( Icd0fd , b/420991203 ) -
NavEntry.keyтеперь является приватным полем. ОбъектNavEntryи его соответствующие состояния должны идентифицироваться новым полемcontentKey, которое генерируется из новой лямбда-contentKeyFactoryи по умолчанию представляет собой сохраняемый хеш, сгенерированный изNavEntry.key( I81a6c , b/422001357 , b/420991203 I2d7d4 , b/420991203 , b/422841812 ).
Изменения зависимостей
- Теперь Navigation3 зависит от нового артефакта
androidx.navigationevent.compose.
Версия 1.0.0-alpha03
4 июня 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие коммиты .
Исправлены ошибки
-
Navigation3больше не будет очищать состояния декораторов дляbackStacks, которые были заменены другим экземпляромbackStack. ( I28a42 , b/415076044 )
Версия 1.0.0-alpha02
23 мая 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты .
Исправлены ошибки
- Исправлена ошибка в
SavedStateNavEntryDecorator, которая вызывала конфликты для разных классов данных с одинаковыми значениями свойств. ( b/418070648 , Iff4775 ) - Исправлена ошибка с отсутствующим классом, которая приводила к сбоям при запуске без явного указания зависимостей. ( b/419049149 , I4b4ed )
Версия 1.0.0-alpha01
20 мая 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты .
Новые функции
Navigation3 — это новая библиотека навигации, созданная специально для обработки внутриприложной навигации Jetpack Compose. Артефакт androidx.navigation3.runtime предоставляет базовые компоненты, а артефакт androidx.navigation3.ui — слой пользовательского интерфейса через API NavDisplay . Разработчики могут передавать собственное состояние непосредственно в составную функцию NavDisplay , которая изменяет содержимое в зависимости от изменений состояния разработчика.
@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey
val backStack = rememberNavBackStack(Home)
NavDisplay(backStack, entryProvider = entryProvider {
entry<Home> {
Column {
Text(“Home”)
Button(onClick = { backStack.add(Chat) } ) {
Text(“Go to Chat”)
}
}
}
entry<Chat> { /* My Composable Content */ }
})
Для получения более подробной информации см. руководство по Navigation3 .
,навигация3
| Последнее обновление | Стабильный релиз | Предварительная версия релиза | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 25 февраля 2026 г. | 1.0.1 | - | - | 1.1.0-alpha05 |
Объявление зависимостей
Чтобы добавить зависимость от navigation3, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Круто
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.1.0-alpha05" implementation "androidx.navigation3:navigation3-ui:1.1.0-alpha05" }
Котлин
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.1.0-alpha05") implementation("androidx.navigation3:navigation3-ui:1.1.0-alpha05") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Для этого артефакта отсутствуют примечания к выпуску.
Версия 1.1
Версия 1.1.0-alpha05
25 февраля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha05 . Версия 1.1.0-alpha05 содержит следующие коммиты .
Изменения в API
- Теперь
NavDisplayиrememberSceneStateпринимаютList<SceneStrategy>вместо прежнего единственного параметраSceneStrategy, который был связан с помощьюthenинфикса. Это более точно соответствуетList<SceneDecoratorStrategy<T>>, который уже принимают обе эти функции API. Предыдущие функции API устарели. ( I78b2c , b/482108465 ) - Добавлен оператор #contains для проверки наличия в карте метаданных заданного
NavMetadataKey. ( Ic30db , b/485311895 ) - Добавлен ключ
NavMetadataKeyDialogKeyдляDialogSceneStrategyдля использования с DSL метаданных. ( Ic7a26 , b/483388817 )
Версия 1.1.0-alpha04
11 февраля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha04 . Версия 1.1.0-alpha04 содержит следующие коммиты .
Новые функции
- В Navigation3 теперь доступен новый типобезопасный DSL для метаданных. DSL использует новый интерфейс
MetadataKey, позволяющий определять типы ключей и значений, которые необходимо передавать в карту метаданных. Также добавлены новыеNavMetadataKeyдля переходовNavDisplay, которые можно использовать с новым DSLmetadata, чтобы добавлять переходы вNavDisplay. ( Ic10ef , Ic049c , b/476213928 )
Изменения в API
- Интерфейс
OverlaySceneполучил новый приостанавливающий коллбэкonRemoved. Этот коллбэк вызывается после удаления ключа, связанного со сценой, из стека возврата, но до того, как сцена покинет композицию. Это позволяет анимациям выхода, вызываемым внутриonRemoved, завершиться до того, как сцена наложения будет удалена из композиции. ( I29a72 , b/440558061 ) -
SceneStrategyфункция декорирования выделена в новый классSceneDecoratorStrategy. Этот новый интерфейс следует использовать для декорирования сцен. Появились новые API дляNavDisplayиrememberSceneState, позволяющие добавлятьSceneDecoratorStrategies. ( If9385 , b/477669607 , b/477670333 )
Исправлены ошибки
- Исправлена ошибка, из-за которой передача
SharedTransitionLayoutвNavDisplayилиrememberSceneStateи использованиеOverlaySceneприводили к сбою, поскольку использованиеSharedTransitionLayoutработает только сNavEntries, которые отображаются как частьAnimatedContent, аOverlaySceneотображаются в отдельных окнах. ( I1bb76 , b/478664101 )
Обновление зависимостей
- Начиная с
Navigation31.0.1:Navigation3теперь зависит отNavigationEvent1.0.2. Это исправляет ошибкуIllegalStateExceptionвозникающую при использованииNavDisplayво время предварительного просмотраAndroidStudio. ( Id7212 , b/477149762 )
Версия 1.1.0-alpha03
28 января 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha03 . Версия 1.1.0-alpha03 содержит следующие коммиты .
Новые функции
- Теперь вы можете динамически добавлять метаданные с учетом ключа записи через DSL
EntryProvider. ( I942fb , b/474416976 )
Версия 1.1.0-alpha02
14 января 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит следующие коммиты .
Новые функции
-
SceneStrategyтеперь поддерживается вложенность сцен с помощью новой функцииcalculatedScene(Scene). Это означает, чтоSceneStrategyможно настраивать для предоставления дополнительной функциональности другим сценам. ( I5df7c , b/440333896 )
Версия 1.1.0-alpha01
3 декабря 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты .
Изменения в API
-
Navigation3теперь поддерживается обработка сцен как объектов с общими свойствами. Это означает, что при смене сцен можно обеспечить плавный переход. Включить эту функцию можно, передавSharedTransitionScopeлибо вNavDisplay, либо вrememberSceneState. ( I15868 )
Версия 1.0
Версия 1.0.1
11 февраля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.1 . Версия 1.0.1 содержит следующие коммиты .
Обновление зависимостей
- Теперь
Navigation3зависит отNavigationEvent1.0.2. Это исправляет ошибкуIllegalStateExceptionвозникающую при использованииNavDisplayво время предварительного просмотраAndroidStudio. ( Id7212 , b/477149762 )
Версия 1.0.0
19 ноября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0 . Версия 1.0.0 содержит следующие коммиты .
Представляем Navigation3!
- Библиотека Navigation3 теперь стабильна! Navigation3 — это подход к навигации, основанный на AndroidX Compose.
- Для получения более подробной информации ознакомьтесь с нашим сообщением в блоге , посетите раздел ресурсов и попробуйте рецепты .
Версия 1.0.0-rc01
5 ноября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты .
Исправлены ошибки
- Теперь
NavDisplayустанавливаетLocalLifecycleOwnerна уровнеScene, что позволяет авторам сцен определять, завершились ли все переходы, проверяя, чтоLifecycle.StateимеетRESUMED. ПоведениеLocalLifecycleOwnerна уровнеNavEntryостается неизменным: он по-прежнему ограничен значениемSTARTED, если переход находится в процессе, и дополнительно ограничен значениемCREATEDесли этотNavEntryбыл удален из стека возврата и находится в процессе анимации. ( I03113 , b/454045829 )
Версия 1.0.0-beta01
22 октября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты .
Изменения в API
- Теперь у
SceneStrategyScopeесть только публичный конструктор без аргументов, подходящий для тестирования вашейSceneStrategyи возвращаемойSceneпо отдельности. Для более сложных случаев использования, пожалуйста, используйтеrememberSceneState(). ( I8440c , b/451679047 )
Исправлены ошибки
- Исправлена ошибка бесконечного цикла при последовательном использовании
SceneStrategyсthen. ( Iba3f0 , b/450323470 ) - Исправлено мерцание экрана при перестановке
backStack, передаваемого вNavDisplay, и использовании анимаций. ( Ief7b5 , b/450967248 )
Версия 1.0.0-alpha11
8 октября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит следующие коммиты .
Изменения в API
- Метод
calculateSceneвSceneStrategyбольше не имеет@Composable. Вместо этого, рассмотрите возможность переноса этой работы в конструктор вашего методаSceneStrategy(т.е. в методrememberMySceneStrategy()), который позволяет полностью определить время жизни любых значенийrememberSaveableили операторов keyrememberна основе правильных значений. ( If1733 , b/448709506 ) - Параметр
onBackдляSceneStrategy.calculateSceneперемещен в новую область видимости получателяSceneStrategyScope, чтобы сделать более понятным, что это необязательный параметр, и предоставить точку расширения для будущих функций Navigation3. ( I3aea3 , b/448460407 ) - Функция
onBackпередаваемая вNavDisplayиSceneStrategyбольше не предоставляет параметрcount: Intуказывающий, когда следует удалять несколько элементов. Вместо этого функция() -> Unitтеперь будет вызываться несколько раз подряд в редких случаях, когда ваша сцена запрашивает удаление нескольких элементов. ( Idedb5 , b/446989346 ) - Удалите класс
NavEntryWrapperи замените его функциональность финальным классомNavEntryс новым вторичным конструктором, который принимает объектNavEntryс новым содержимым. Это позволит продолжить поддержку обертывания записи новым содержимым. ( I7da2a , b/444447130 ) - Функция
navEntryDecorator, которая создает и возвращает объектNavEntryDecorator, была удалена и заменена классомNavEntryDecorator, который теперь является публичным и открытым для наследования. ( If81f8 , b/444447434 , b/447381176 ) -
SavedStateNavEntryDecoratorбыл переименован вSaveableStateHolderNavEntryDecoratorпоскольку он декорирует элементы с помощьюSaveableStateHolder. Кроме того, декоратор был преобразован из функции в класс, поскольку по своей сути он является фабрикой дляNavEntryDecorator. ( Ie6013 , b/447381176 ) - Для пользовательских дисплеев, использующих
SceneStateв качестве альтернативыNavDisplayбольше не требуется использовать локальную переменную композицииLocalEntriesToRenderInCurrentScene, которая теперь является внутренней. ( Ic40ef , b/414668196 ) - Удалены
SceneSetupNavEntryDecoratorиrememberSceneSetupNavEntryDecorator()из публичного API. Теперь эта функциональность включена по умолчанию без необходимости ее ручного добавления. ( Ieae42 , b/444479133 ) - Теперь
NavEntry,DialogScene,SinglePaneSceneиSceneStateреализуют интерфейс equals. ( I96121 ) - В интерфейсе сцены появилось новое поле метаданных для добавления метаданных, специфичных для сцены, к NavDisplay. Это позволяет сцене переопределять метаданные в
NavDisplay, например, для переходов. ( I1fd96 , b/443955625 ) - Упростите сигнатуру
rememberNavBackStack, удалив избыточный параметр типа generic. Теперь функция принимаетvararg elements: NavKey. ( I03e45 ) - Анимации по умолчанию для
NavDisplayтеперь являются частью общего API, что позволяет вызывать их со всех платформ. ( I71af9 , b/447147159 ) - Переименуйте
EntryProviderBuilderвEntryProviderScope, чтобы точно отразить, что класс представляет собой Kotlin DSL, предоставляющий область видимости для созданияNavEntries. ( Ia7465 )
Исправлены ошибки
- Функция
rememberNavBackStack()теперь обеспечивает полиморфную сериализацию для NavKey и требует наличия пользовательскойSavedStateConfiguration, настроенной для корректного восстановления состояния. Документация KDoc была обновлена, чтобы отразить требование о том, что все подтипы NavKey должны быть зарегистрированы в предоставленном модуле SerializersModule. ( I6de37 , I782f2 , b/446664383 )
Версия 1.0.0-alpha10
24 сентября 2025 г.
Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит следующие коммиты .
Изменения в API
- Добавлена новая перегрузка
NavDisplay, которая принимает списокNavEntry<T>, помеченных атрибутомrememberDecoratedNavEntries. ( I4025b , b/441940314 ) - Перенесено
DialogSceneв новый пакет. ( Ia5840 ) - Удалите публичный API
DecorateNavEntry. Вместо этого используйтеrememberDecoratedNavEntries, чтобы обернуть NavEntry списком декораторов. ( Id8c09 ) - В Navigation3 UI теперь доступны новые свойства
transitionSpecпо умолчанию. ( Ibcabd ) - Добавлен новый объект
SceneStateдля управления сценами. Он также предоставляет новую перегрузкуNavDisplay, которая принимаетSceneStateиNavigationEventState. ( Idfb46 , b/444479133 ) - Теперь
NavDisplayпозволяет настраивать переходы в зависимости от того, в какуюSceneвы переходите и из какой, анализируяcurrentStateиtargetStateTransition. ( I906cc , b/443872322 ) -
NavigationEventInfoтеперь являетсяabstract classа неinterface. Обновите все пользовательские реализации, чтобы они наследовали от этого класса (например,data class MyInfo : NavigationEventInfo()). ( I1e59c , b/444734264 ) - API обработчиков
navigationevent-composeобновлены.NavigationEventHandlerиNavigationBackHandler(и их варианты) теперь поддерживают новую перегрузку, которая принимает поднятое состояниеNavigationEventState. Простые перегрузки (принимающиеcurrentInfo) сохранены и теперь используют эту новую модель состояния внутри. ( Ic3251 , b/444734264 ) - Все API-интерфейсы сцен были перенесены из navigation3-ui в navigation3-runtime. Это означает, что теперь они доступны на всех платформах, поддерживаемых navigation3-runtime. ( I431d0 , b/444449993 )
- Добавлена новая перегрузка
rememberDecoratedNavEntries, которая принимает списокNavEntryдля декорирования. Элементы ввода уже могут быть декорированы другими декораторами элементов. ( I5a034 , b/444230270 ) - Удалить параметры типа подстановки navigation3 ( I02540 )
- Улучшена обработка обобщенных типов для DSL
entryProvider. Если ранее вы импортировалиandroidx.navigation3.runtime.entry, теперь это не требуется. ( I299fc ) - Ограничьте использование перегрузки
NavBackStackSerializerоснованной на рефлексии, только платформами Android. Это предотвратит неявные ошибки сериализации во время выполнения на платформах, отличных от Android, путем принудительного использования явной перегрузкиSavedStateConfigurationв многоплатформенном коде. ( I73313 , b/420443609 ) - Сделайте свойство `
swipeEdgeобъекта `NavigationEvent@IntDef( `Icee54` , b/443950342` ) - Ограничьте сериализацию
NavBackStackтолько Android. Это предотвратит сбои во время выполнения на платформах, отличных от Android. Для сохранения состояния на нескольких платформах используйте перегрузкуrememberNavBackStackс явным указаниемSavedStateConfiguration. ( I1e418 , b/420443609 )
Исправлены ошибки
- Fix crash during predictive back when nested
NavDisplayhas a single child entry. ( I2cdc0 , b/441933162 )
Version 1.0.0-alpha09
10 сентября 2025 г.
androidx.navigation3:navigation3-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .
API Changes
- The
DecoratedNavEntryProviderhas been replaced withrememberDecoratedNavEntriesthat creates and return NavEntries decorated with the list of provided decorators ( I0fe1c , b/441328236 ) -
NavBackStackis now generic over theNavKeytype. This allows apps and libraries to define custom key types for their back stacks, rather than being restricted toNavKey. ( I4d190 , Iad2f4 , b/420443609 ) -
NavBackStackis now@kotlinx.serialization.Serializable, making it possible to save and restore navigation state across process death and configuration changes without extra boilerplate. ( I2c3cf , b/420443609 ) -
RememberNavBackStackhas been moved tocommonMainto ensure it is provided on all platform targets. ( Id69e7 , b/420443609 )
Исправлены ошибки
-
NavDisplaynow correctly moves each individualNavEntryto the correctLifecycle.State. ( I30aac , b/440145700 ) - Fixed an issue where
NavDisplaywould ignore any nestedNavigationEventDispatcherOwnerset via theNavigationEventlibrary'sLocalNavigationEventDispatcherOwner. ( I6224a )
Dependency Changes
- Navigation3 now depends on NavigationEvent Alpha08 .
Version 1.0.0-alpha08
27 августа 2025 г.
androidx.navigation3:navigation3-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .
Новые функции
- Added new Kotlin MultiPlatform (KMP) targets to
Navigation3 Runtimeartifacts.Navigation3 Runtimenow supports the following platforms in total: JVM (Android and Desktop), Native (Linux, iOS, watchOS, macOS, MinGW), and Web (JavaScript, WasmJS). ( I55078 , b/424410398 , b/419294028 , b/419046226 ). Note: This does not provide KMP targets forNavigation3 UIartifact. On other platforms, you will need to implement your own customNavDisplay. If you would like to see it supported, please vote on the Jetbrains issue here and track the progress for additional support there. - The
NavDisplayInfoobject is now public and can be used to retrieve the list of visible entries from theNavDisplay. ( Ibc91f )
API Changes
- Added a new
NavBackStackSerializerto be used in conjunction withrememberNavBackStackto perform state restoration.rememberNavBackStack()now also takes aSavedStateConfigurationthat can be used to provide your own configuration. ( I2f4d2 , I4cd58 , b/420443609 )
Исправлены ошибки
- Fixed an issue where navigating would cause incorrect Lifecycle events to fire. ( I8bf6d , b/425901162 , b/434109022 )
Известные проблемы
- There was a bug introduced by I8bf6d that caused Lifecycles to be based on scenes instead of individual entries, which broke Lifecycle for any cases where the
keyprovided to theNavEntryis not aStringor yourNavEntryhas not overridden thecontentKeyand set it equal to thekey(note that doing this enforces that your key can be saved into aBundle). This has been fixed for the next release. ( b/440145700 )
Version 1.0.0-alpha07
13 августа 2025 г.
androidx.navigation3:navigation3-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .
MinSdk Update
- The default minSdk for the AndroidX has been moved from API 21 to API 23 ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
API Changes
-
SavedStateNavEntryDecoratornow uses theSaveableStateRegistrybuilt intoSaveableStateProviderto save and restore states. ( If8d9a ) - The
predictivePopTransitionSpecis now provided the swipe edge as a parameter, allowing you to customize the transition based on what edge the user started the Predictive Back gesture from. ( I753a8 )
Исправлены ошибки
- Fixed an issue that would cause custom scenes to be infinitely recalculated because the most recent scene was not being remembered. ( I7ba84 , b/418153031 )
Dependency update
- Navigation3 now depends on Navigation Event
1.0.0-alpha06.
Version 1.0.0-alpha06
30 июля 2025 г.
androidx.navigation3:navigation3-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .
Dependency Update
- Navigation3 now depends on Navigation Event
1.0.0-alpha05.
Version 1.0.0-alpha05
2 июля 2025 г.
androidx.navigation3:navigation3-*:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits .
Изменения в поведении
- The
NavEntry's state is now strictly based on the current list of decorators passed to theNavDisplay. This means that decorators should be swapped along your back stacks in the case of multiple back stacks in order to preserve the state of the NavEntries on the back stack. Otherwise, the states will be cleared as if the entries were popped (instead of a swap). ( I7a759 , b/428033667 )
Version 1.0.0-alpha04
June 18, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits .
API Changes
-
NavEntry.contentis now private. To invokeNavEntrycontent, call the newNavEntry.Content()api which no longer requires akeyparameter to invoke. ( Icd0fd , b/420991203 ) -
NavEntry.keyis now a private field. TheNavEntryand its relevant states should be identified by the newcontentKeyfield which is generated from the newcontentKeyFactorylambda and defaults to a saveable hash generated fromNavEntry.key( I81a6c , b/422001357 , b/420991203 I2d7d4 , b/420991203 , b/422841812 )
Dependency Changes
- Navigation3 now depends on the new
androidx.navigationevent.composeartifact.
Version 1.0.0-alpha03
4 июня 2025 г.
androidx.navigation3:navigation3-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits .
Исправлены ошибки
-
Navigation3will no longer clear decorator states forbackStacksthat have been swapped out and replaced with anotherbackStackinstance. ( I28a42 , b/415076044 )
Version 1.0.0-alpha02
May 23, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits .
Исправлены ошибки
- Fixed an issue with the
SavedStateNavEntryDecoratorwhich caused collisions for different data classes with the same property values. ( b/418070648 , Iff4775 ) - Fixed a missing class issue that would cause crashes when running without declaring explicit dependencies. ( b/419049149 , I4b4ed )
Version 1.0.0-alpha01
20 мая 2025 г.
androidx.navigation3:navigation3-*:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits .
Новые функции
Navigation3 is a new navigation library built specifically to handle Jetpack Compose in-app navigation. The androidx.navigation3.runtime artifact provides the building blocks, while the androidx.navigation3.ui artifact provides the UI layer via the NavDisplay API. Developers can provide their own state directly to the NavDisplay composable function, which changes the content based on changes in the developer state.
@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey
val backStack = rememberNavBackStack(Home)
NavDisplay(backStack, entryProvider = entryProvider {
entry<Home> {
Column {
Text(“Home”)
Button(onClick = { backStack.add(Chat) } ) {
Text(“Go to Chat”)
}
}
}
entry<Chat> { /* My Composable Content */ }
})
For more information, see the Navigation3 guide .