навигация3
| Последнее обновление | Стабильный релиз | Предварительная версия для выпуска | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 12 августа 2026 г. | 1.1.6 | - | - | 1.2.0-alpha07 |
Объявление зависимостей
Чтобы добавить зависимость от navigation3, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Круто
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha07" implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha07" }
Котлин
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha07") implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha07") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Для этого артефакта отсутствуют примечания к выпуску.
Navigation3 Версия 1.2
Версия 1.2.0-alpha07
29 июля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.2.0-alpha07 . Версия 1.2.0-alpha07 содержит следующие коммиты .
Изменения в API
- Добавлен абстрактный класс
WrappedMatchResultдля обертывания другого классаDeepLinkMatcher.MatchResult. Это позволяет настраивать результаты поиска, накладывая их поверх уже имеющихся. ( I7d4dc , b/470282247 ) Добавлен новый класс
BackStackMatcher, который принимает два параметра: экземпляр сопоставителя и лямбда-функцию-конструктор, предоставляющую результат совпадения входного сопоставителя и возвращающую стек возврата. В случае успешного совпаденияBackStackMatcherвозвращаетBackStackMatchResult, который расширяетWrappedMatchResultи содержит исходный результат совпадения вместе со стеком возврата, построенным с помощью лямбда-функции. КлассBackStackMatcherможно создать только с помощью новой функции расширенияDeepLinkMatcher.withBackStack. ( Ibf987 , b/470282247 )Добавлен абстрактный класс
DeepLinkSerializer, расширяющийKSerializerдля кодирования и декодированияvalue : TкакString.DeepLinkSerializerможно использовать для сериализации не примитивных аргументов глубоких ссылок. Совместим сrememberSaveableиrememberNavBackStack. ( Id3c9f , b/470282247 )DeepLinkMatcherдобавлен второй параметр типаout R : DeepLinkMatcher.MatchResult<T>, позволяющий разработчикам получать доступ к свойствам подклассаMatchResultвозвращаемого методомDeepLinkMatcher.match()без приведения типов. ( I693d3 , b/470282247 )Верхняя граница T
DeepLinkMatcher.MatchResult'sизменилась сAny?наAny. ( I6bf1a )Поле
uriв конструктореDeepLinkRequestтеперь по умолчанию имеет значение null. ВторичныйuriStringв конструкторе переименован вuri. ( Ia0f14 , b/522194187 )
Исправлены ошибки
- Теперь
ResultEffectиспользуетrememberUpdatedStateдля захвата последнего лямбда-onResult. ( I7d2a3 , b/531709234 ) - Исправлена ошибка сопоставления глубоких ссылок для пустых сегментов пути. Если тип аргумента — String, пустой путь будет рассматриваться как пустая строка. В противном случае пустой путь будет рассматриваться как отсутствие значения и будет использоваться значение по умолчанию. Если значение по умолчанию отсутствует, сопоставление завершится неудачей. ( I56575 , b/535298128 )
- Добавлена поддержка пустых значений запроса в
DeepLinkRequest.uri. Если аргумент имеет тип String, пустое значение будет рассматриваться как буквальная пустая строка. В противном случае пустое значение рассматривается как отсутствие значения, и сопоставление будет пытаться использовать значение по умолчанию. Если значения по умолчанию нет, сопоставление завершится неудачей. ( I30343 , b/535127459 ) - Теперь
EntryProviderотдает приоритет сопоставлению на основе экземпляров ключей, а не типов ключей. ( Ib5ec9 , b/533331924 ) -
SceneStateтеперь корректно вычисляет предыдущие сцены, начиная с самой верхней сцены, не являющейся наложением. ( I91915 , b/513630541 )
Версия 1.2.0-alpha06
15 июля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.2.0-alpha06 . Версия 1.2.0-alpha06 содержит следующие коммиты .
Исправлены ошибки
- Исправлена документация
UriDeepLinkMatcherпо фрагментам URI, чтобы уточнить, что фрагменты с подстановочными знаками будут соответствовать любому входному значению, но это значение не будет извлекаться в качестве аргументов. ( I5ad9b , b/524677091 ) - Исправлена ошибка, из-за которой
UriDeepLinkMatcherне мог сопоставить запрос, если шаблон URI не содержал схему или не начинался с двойной косой черты. Например,www.example.com/homeтеперь будет соответствоватьhttp://www.example.com/home. ( Ia6b65 , b/522791926 )
Версия 1.2.0-alpha05
1 июля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.2.0-alpha05 . Версия 1.2.0-alpha05 содержит следующие коммиты .
Новый API
- Добавлен API
rememberResultEventBus, который возвращает объектResultEventBus, который можно передать вrememberResultEventBusNavEntryDecorator. Это позволяет вынестиResultEventBusза пределыResultEventBusNavEntryDecorator. ( Ia655b , b/516995400 )
DeepLinkRequest
- Добавлены два конструктора, совместимых с KMP: один принимает DeepLinkUri, а другой — необработанный строковый URI. ( I3c088 , b/513200887 , b/522194187 )
- (Только для Android) Добавлен конструктор, принимающий
Intent. ( Ia0498 , b/513200887 , b/522194187 ) - Все конструкторы имеют дополнительное поле
extrasдляMap<String, Any>позволяющее прикрепить дополнительную информацию запроса. ( If81d5 , b/513200887 ) - Добавлен новый DSL-класс
requestExtras, обеспечивающий типобезопасный способ построения карты дополнительных данных. DSL предоставляет функциюputдля сохранения парRequestExtrasKeyвAny. Функция расширенияMap<String, Any>.get(key)может использоваться для чтения из карты с помощьюRequestExtrasKey( I5091c , b/513200887 ). - (Только для Android) Добавлены функции
ActionExtrasKeyиactionExtraдля создания карты дополнительных материалов с помощьюActionExtrasKey. ( Id0c90 , [b/513200887] - Добавлены функции
MimeTypeExtrasKeyиmimeTypeExtraдля создания карты дополнительных данных с использованиемMimeTypeExtrasKey. ( I85131 , b/513200887 )
DeepLinkMatcher
- Добавлены функции
DeepLinkMatcher.mimeTypeFilterиDeepLinkMatcher.actionFilterдля созданияDeepLinkMatcher.Filters, которые фильтруютDeepLinkRequestпоmimeTypeилиaction(только для Android). Оба фильтра сопоставляют строки по равенству и нечувствительны к регистру. ( Ie7e67 , b/513191950 )
Изменения в API
DeepLinkRequest
- Удалите фабричную функцию
fromAction. Для создания запроса, связанного с действием, используйте новое полеDeepLinkRequest.extras. ( Id0c90 , b/513200887 ) - Удалена фабричная функция
fromMimeType. Для создания запроса, связанного с MIME-типом, используйте новое полеDeepLinkRequest.extras. ( I85131 , b/513200887 ) - (Только для Android) Удалено
fromIntentфункции фабрики Intent. Заменено новым конструктором, который принимает Intent и карту extras. ( Ia0498 , b/513200887 , b/522194187 ) - Удалены фабричные функции
fromUriиfromUriString. Вместо них добавлены новые конструкторы, принимающие либоDeepLinkUri, либо необработанный строковый URI. ( Id5b6f , b/522194187 ) -
DeepLinkMatcher,DeepLinkMatcher.MatchResultи их подклассы теперь принимают ковариантный тип T (out T), так что для иерархических ключей не потребуется приведение типов, как это делается с классами Matcher. ( I1e453 , b/525094876 ) - Параметр `map` конструктора
UriMatchResultдля аргументов теперь по умолчанию имеет значение `pash`. ( I3acdd ) - Абстрактный класс
DeepLinkMatcher.Filterтеперь является функциональным интерфейсом. Поле конструктораfilterудалено и вместо этого должно передаваться непосредственно в подкласс. ( I9eb7d , b/522194187 )
Исправлены ошибки
- Исправлена ошибка, из-за которой извлеченная запись немедленно исчезала при извлечении записи, содержащей вложенные метаданные со значениями лямбда-функций. ( Idb872 , b/520494430 )
- Исправлена ошибка
UriDeepLinkMatcherиз-за которой он возвращает значение nullUriMatchResultвместо генерации исключенияMissingFieldExceptionпри отсутствии необходимых аргументов во время сопоставления. ( I5322f , b/524663005 ) - Объект
UriDeeplinkMatcherсодержащий URI со схемой https, может быть сопоставлен только с запросами, которые также имеют схему https. ( Ibfe22 , b/522304329 ) - Исправлена ошибка
UriDeepLinkMatcherиз-за которой он корректно определял схемуhttpкак положительное совпадение сhttpsпри сопоставленииDeepLinkRequestсUriDeepLinkMatcher. ( I3a62b , b/518804264 ) - Теперь компаратор
DeepLinkMatcher.MatchResultпо умолчанию возвращает 0, если два результата равны. ( I48ddb , b/518841353 ) - Теперь
UriDeepLinkMatcherбудет возвращать значение nullUriMatchResultвместо того, чтобы выбрасывать исключение, если запрос на сопоставление не удается из-за отсутствия необходимых аргументов. ( I669a7 , b/470282247 , b/512923412 )
Версия 1.2.0-alpha04
3 июня 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.2.0-alpha04 . Версия 1.2.0-alpha04 содержит следующие коммиты .
Исправлены ошибки
- Исправлена ошибка анимации наложений, из-за которой вложенные наложения, такие как
ModalBottomSheetнеожиданно переанимировались при удалении наложений, расположенных над ними. ( Ia2b9e , b/502624496 )
Версия 1.2.0-alpha03
19 мая 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.2.0-alpha03 . Версия 1.2.0-alpha03 содержит следующие коммиты .
Новые функции
В Navigation 3 теперь поддерживаются прямые ссылки с помощью DeepLinkRequest и DeepLinkMatcher :
DeepLinkRequestэто запрошенная глубокая ссылка, содержащаяDeepLinkUriи необязательный mimeType или action (только для Android). Вместе с новым классом существуют вспомогательные функции для создания экземпляра сuri,mimeTypeилиaction. Платформа Android также имеет вспомогательную функцию для формирования запроса из Intent. ( Iaaac9 , b/470282247 )val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home") val uriAndMimeRequest = DeepLinkRequest.fromUriString( "https://sampledeeplink.com/user/profile?id=123", "image/png" )DeepLinkMatcherпредставляет собой глубокую ссылку, которая может быть сопоставлена сDeepLinkRequest. Каждый экземпляр сопоставления связан с ключом навигации, поддерживающим эту глубокую ссылку. Ключ навигации может быть связан с несколькими сопоставлениями. ВызовDeepLinkMatcher.matchвернетMatchResult, содержащий связанный ключ навигации, если сопоставление прошло успешно. Существует две реализацииDeepLinkMatcherпо умолчанию:UriDeepLinkMatcherдля сопоставления глубоких ссылок на основе URI иStaticKeyDeepLinkMatcherдля сопоставления глубоких ссылок только сDeepLinkMatcher.Filter, которые соответствуют логическому значению (Boolean). ( I3798e , b/470282247 )UriDeepLinkMatcherэто реализацияDeepLinkMatcherс заданными параметрами, которая обрабатывает глубокие ссылки, сопоставляяDeepLinkUriс сериализуемым ключом навигации. Она поддерживает аргументы глубоких ссылок в виде примитивных типов или коллекций примитивных типов, таких как списки, массивы и множества. ( I1520b , b/470282247 )@Serializable data class UserKey(val id: Int): NavKey // declare a deep link supported by UserKey val userMatcher = UriDeepLinkMatcher( uriPattern = "www.sampledeeplink.com/user?userId={id}", serializer = serializer<UserKey>() ) // handle a requested deep link with fallback key val key = userMatcher.match(deepLinkRequest)?.key ?: HomeKeyДобавлен
DeepLinkUri, который представляет собой мультиплатформенную версиюandroid.net.Uriдля Kotlin ( Id4725 , b/470282247 ).
Изменения в API
- Обновлена версия
compileSdk 37чтобы соответствовать compileSdk Compose.
Исправлены ошибки
- Исправлена
IllegalArgumentExceptionвAnimatedBottomSheetSampleпри отображении нескольких наложений. ПримерSceneStrategyтеперь будет корректно вычислять последнюю сцену, не являющуюсяOverlayScene, и отображать её под всеми сценами наложений. ( If2281 , b/506733412 ) - Обновлена зависимость
NavigationEventдо версии 1.1.1, что удаляет неактивный NavigationEventHandler в режиме проверки, позволяя включить функцию предиктивного возврата в предварительных просмотрах Android Studio. ( I487fd )
Версия 1.2.0-alpha02
22 апреля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит следующие коммиты .
Изменения в API
- Переименуйте
onBackвonBackCompletedи добавьтеonBackCancelledв NavigationBackHandler для поддержки обработки отмененных жестов возврата назад. ( I92741 ) - Добавлен
NavigationBackHandlerдля упрощения обработки жестов возврата назад и предиктивного возврата при использованииSceneState. Это позволит разработчикам проще создавать пользовательские компоненты интерфейса, поддерживающие стандартную навигацию назад и предиктивные жесты, без ручного вычисления разницы стека возврата. ( I6a055 ) - Добавьте
rememberNavigationEventStateдля упрощения связиSceneStateс предиктивной обработкой возврата. ( Iae49c )
Новые функции
- Добавлен API
ResultEventBus, позволяющий передавать результаты между NavEntries с помощьюLocalResultEventBus, предоставляемого новымResultEventBusNavEntryDecorator. Переданные результаты могут быть оценены как состояние с помощьюResultEventBus#conflateAsStateили как поток результатов с помощьюResultEffect.
Версия 1.2.0-alpha01
8 апреля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие коммиты .
Исправлены ошибки
- Доступ к
LocalNavAnimatedContentScopeизOverlaySceneбольше не будет вызыватьIllegalStateException, посколькуOverlayScenesтеперь получаютLocalAnimatedContentScopeкоторый ничего не делает. ( I2f00c , b/486067688 )
Navigation3 Версия 1.1
Версия 1.1.6
12 августа 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.6 . Версия 1.1.6 содержит следующие коммиты .
Исправлены ошибки
- Теперь
NavEntry.contentKeyпо умолчанию представляет собой комбинациюkey.toString()иkey::class.toString(). Это гарантирует, что объекты данных, имеющие одинаковое имя, но реализующие разные интерфейсы, больше не будут иметь одинаковыйcontentKey. Однакоkey::classплатформы JS возвращает только простое имя класса вместо полного имени, поэтому платформе JS по-прежнему следует реализовывать пользовательскийcontentKeyдля объектов данных с повторяющимися именами. ( I1fbbb , b/512534342 ) - Исправлена
IllegalArgumentExceptionвыбрасываемаяSaveableStateHolderпри повторном использовании ключей в случае одновременного выполнения нескольких переходов из стека возврата из-за быстрого извлечения данных из стека возврата. ( I4d728 , b/516312097 )
Версия 1.1.5
29 июля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.5 . Версия 1.1.5 содержит следующие коммиты .
Исправлены ошибки
- В DSL
entryProviderтеперь отдается приоритетNavEntryсозданному с использованием экземпляра ключа, напримерentry(key = userKey) { ... }, надNavEntry, созданным с использованием класса ключа, такого какentry<UserKey>{ ... }. ( Ib5ec9 , b/533331924 )
Версия 1.1.4
1 июля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.4 . Версия 1.1.4 содержит следующие коммиты .
Исправлены ошибки
- Исправлена ошибка, из-за которой извлеченная запись немедленно исчезала при извлечении записи, содержащей вложенные метаданные со значениями лямбда-функций. ( Idb872 , b/520494430 )
Версия 1.1.3
17 июня 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.3 . Версия 1.1.3 содержит следующие коммиты .
Исправлены ошибки
Исправлена ошибка анимации наложений, из-за которой вложенные наложения, такие как
ModalBottomSheetнеожиданно переанимировались при удалении наложений, расположенных над ними. ( Ia2b9e , b/502624496 )Обновлена зависимость
NavigationEventдо версии 1.1.2, что позволило удалить неактивныйNavigationEventHandlerв режиме проверки кода и включить функцию «Предсказательное возвращение назад» в предварительных версиях Android Studio.
Версия 1.1.2
19 мая 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.2 . Версия 1.1.2 содержит следующие коммиты .
Исправлены ошибки
- Обновлена зависимость
NavigationEventдо версии 1.1.1, что позволило удалить неактивныйNavigationEventHandlerв режиме проверки кода и включить функцию «Предсказательное возвращение назад» в предварительных версиях Android Studio.
Версия 1.1.1
22 апреля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.1 . Версия 1.1.1 содержит следующие коммиты .
Исправлены ошибки
- Доступ к
LocalNavAnimatedContentScopeизOverlaySceneбольше не будет вызыватьIllegalStateException, посколькуOverlayScenesтеперь получаютLocalAnimatedContentScopeкоторый ничего не делает. ( I2f00c , b/486067688 )
Версия 1.1.0
8 апреля 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0 . Версия 1.1.0 содержит следующие коммиты .
Версия 1.1.0 теперь стабильна!
Важные изменения с версии 1.0.0
Общие элементы между сценами — Navigation3 теперь поддерживает обработку сцен как объектов общих элементов. Это означает, что при смене сцен можно обеспечить плавный переход. Включить эту функцию можно, передав SharedTransitionScope либо в NavDisplay , либо в rememberSceneState .
SceneDecoratorStrategy — Введение функции SceneDecoratorStrategy для поддержки таких сценариев использования, как оформление сцен общими компонентами пользовательского интерфейса или совместное использование состояния между сценами.
NavMetadata DSL - Navigation3 теперь предоставляет новый типобезопасный DSL для метаданных. DSL использует новый интерфейс MetadataKey , который позволяет определять типы ключей и значений, которые необходимо передавать в карту метаданных. Также добавлены новые NavMetadataKeys для переходов NavDisplay , чтобы их можно было использовать с новым DSL для метаданных для добавления переходов в NavDisplay .
Анимации OverlayScene — Интерфейс OverlayScene получил новый приостанавливающий коллбэк onRemoved . Этот коллбэк вызывается после удаления ключа, связанного со сценой, из стека возврата, но до того, как сцена покинет композицию. Это позволяет завершить анимации выхода, вызываемые внутри onRemoved , до того, как сцена наложения будет удалена из композиции.
Другие изменения : - NavDisplay и rememberSceneState теперь принимают List<SceneStrategy> вместо прежнего единственного параметра SceneStrategy , который был связан с помощью then инфикса. - Теперь вы можете динамически добавлять метаданные с учетом ключа записи через DSL EntryProvider .
Версия 1.1.0-rc01
25 марта 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие коммиты .
Исправлены ошибки
- Теперь
NavDisplayгарантирует, чтоLifecycleэлементов, отображаемых под наложениями, ограничен значениемSTARTED. Это обеспечивает дальнейшую работу API, таких какdropUnlessResumedпри использовании диалоговых окон. ( If209f , b/483966071 ) - Исправлена ошибка в
NavDisplay, из-за которой переключение между одними и теми же экранами и прерывание анимации между ними могли приводить к неправильному порядку отображения экранов по оси Z. ( I4d491 , b/459419800 )
Версия 1.1.0-beta01
11 марта 2026 г.
Выпущена версия androidx.navigation3:navigation3-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие коммиты .
Версия 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 )
Исправлены ошибки
- 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
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
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 .
,navigation3
| Последнее обновление | Стабильный релиз | Release Candidate | Beta Release | Альфа-версия |
|---|---|---|---|---|
| 12 августа 2026 г. | 1.1.6 | - | - | 1.2.0-alpha07 |
Объявление зависимостей
To add a dependency on navigation3, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle file for your app or module:
Круто
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha07" implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha07" }
Котлин
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha07") implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha07") }
For more information about dependencies, see Add build dependencies .
Обратная связь
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
There are no release notes for this artifact.
Navigation3 Version 1.2
Version 1.2.0-alpha07
29 июля 2026 г.
androidx.navigation3:navigation3-*:1.2.0-alpha07 is released. Version 1.2.0-alpha07 contains these commits .
API Changes
- Added an abstract
WrappedMatchResultclass to wrap anotherDeepLinkMatcher.MatchResult. This allows customized match results layered on top of another one. ( I7d4dc , b/470282247 ) Added new
BackStackMatcherclass which takes two parameters: a matcher instance, and a builder lambda that provides the input matcher's match result and returns a back stack. Upon a successful match,BackStackMatcherreturns aBackStackMatchResultwhich extendsWrappedMatchResultcontaining the original match result along with the back stack built with the lambda. TheBackStackMatchercan only be created with the newDeepLinkMatcher.withBackStackextension function. ( Ibf987 , b/470282247 )Added an abstract
DeepLinkSerializerclass that extendsKSerializerto encode and decodevalue : Tas aString.DeepLinkSerializercan be used to serialize non-primitive deep link arguments. Compatible withrememberSaveableandrememberNavBackStack. ( Id3c9f , b/470282247 )DeepLinkMatcherhas added a second type parameterout R : DeepLinkMatcher.MatchResult<T>so that developers can access the properties of the subclassedMatchResultreturned byDeepLinkMatcher.match()without type casting. ( I693d3 , b/470282247 )DeepLinkMatcher.MatchResult'sT upper bound has changed fromAny?toAny. ( I6bf1a )DeepLinkRequestconstructor fieldurinow defaults to null. The secondary constructor'suriStringhas been renamed touri. ( Ia0f14 , b/522194187 )
Исправлены ошибки
-
ResultEffectnow usesrememberUpdatedStateto capture the latestonResultlambda. ( I7d2a3 , b/531709234 ) - Fixed deep link matching for empty path segments. If the argument type is String, the empty path will be treated as an empty string value. Otherwise, the empty path is treated as no value provided and will fall back to defautl value. If there is no defautl value, matching will fail. ( I56575 , b/535298128 )
- Added support for empty query values in
DeepLinkRequest.uri. If the argument is of String type, the empty value will be treated as a literal empty string. Otherwise, the empty value is treated as no value provided and matching will attempt to fallback to default value. If there is no default value, matching will fail. ( I30343 , b/535127459 ) -
EntryProvidernow prioritizes matching based on key instances over key types. ( Ib5ec9 , b/533331924 ) -
SceneStatenow correctly calculates previous scenes starting from the top-most non-overlay scene. ( I91915 , b/513630541 )
Version 1.2.0-alpha06
15 июля 2026 г.
androidx.navigation3:navigation3-*:1.2.0-alpha06 is released. Version 1.2.0-alpha06 contains these commits .
Исправлены ошибки
- Fixed
UriDeepLinkMatcherdocumentation on uri fragments to clarify that fragments with wildcards will match any input but the input does not get extracted as arguments. ( I5ad9b , b/524677091 ) - Fixed
UriDeepLinkMatcherfailing to match with a request if the uri pattern does not contain a scheme or does not start with double slash. For example,www.example.com/homewill now match withhttp://www.example.com/home. ( Ia6b65 , b/522791926 )
Version 1.2.0-alpha05
1 июля 2026 г.
androidx.navigation3:navigation3-*:1.2.0-alpha05 is released. Version 1.2.0-alpha05 contains these commits .
Новый API
- Added a
rememberResultEventBusapi which returns aResultEventBusthat can be passed torememberResultEventBusNavEntryDecorator. This allows hoisting aResultEventBusoutside theResultEventBusNavEntryDecorator. ( Ia655b , b/516995400 )
DeepLinkRequest
- Added two KMP-compatible constructors - one that takes a DeepLinkUri and one that takes a raw string uri. ( I3c088 , b/513200887 , b/522194187 )
- (Android only) Added a constructor that takes an
Intent. ( Ia0498 , b/513200887 , b/522194187 ) - All constructors have an additional
extrasfield for aMap<String, Any>to attach additional request information. ( If81d5 , b/513200887 ) - A new
requestExtrasdsl is added as a type safe way to build a map of extras. The dsl provides aputfunction to store pairs ofRequestExtrasKeytoAny. TheMap<String, Any>.get(key)extension function can be used to read from the map with aRequestExtrasKey( I5091c , b/513200887 ) - (Android only) Added an
ActionExtrasKeyandactionExtrafunction to create an extras map withActionExtrasKey. ( Id0c90 , [b/513200887] - Added a
MimeTypeExtrasKeyandmimeTypeExtrafunction to create an extras map withMimeTypeExtrasKey. ( I85131 , b/513200887 )
DeepLinkMatcher
- Added
DeepLinkMatcher.mimeTypeFilterandDeepLinkMatcher.actionFilterfunctions to createDeepLinkMatcher.Filtersthat filterDeepLinkRequestbymimeTypeoraction(Android only). Both filters match by string equality and is case-insensitive. ( Ie7e67 , b/513191950 )
API Changes
DeepLinkRequest
- Remove
fromActionfactory function. To create a request associated with an Action, use the newDeepLinkRequest.extrasfield.( Id0c90 , b/513200887 ) - Removed
fromMimeTypefactory function. To create a request associated with a mimeType, use the newDeepLinkRequest.extrasfield. ( I85131 , b/513200887 ) - (Android-only) Removed
fromIntentfactory function. Replaced by a new constructor that takes an Intent and extras map. ( Ia0498 , b/513200887 , b/522194187 ) - Removed factory functions
fromUriandfromUriString. Replaced by new constructors that either take aDeepLinkUrior a raw string uri. ( Id5b6f , b/522194187 ) -
DeepLinkMatcher,DeepLinkMatcher.MatchResultand their subclasses now take a covariant T (out T) so that hierarchical keys will not need type casting with used with Matchers. ( I1e453 , b/525094876 ) - The
UriMatchResultconstructor param for arguments map now defaults to an empty map. ( I3acdd ) -
DeepLinkMatcher.Filterabstract class is now a functional interface. Thefilterconstructor field is removed and instead should be passed directly in the subclass. ( I9eb7d , b/522194187 )
Исправлены ошибки
- Fixed popped entry disappearing immediately when popping to an entry that has a nested metadata containing lambda values. ( Idb872 , b/520494430 )
- Fixed
UriDeepLinkMatcherso that it will return a nullUriMatchResultinstead of throwingMissingFieldExceptionwhen required arguments are missing during matching. ( I5322f , b/524663005 ) - A
UriDeeplinkMatchercontaining uri with https scheme can only be matched with requests that also have https scheme. ( Ibfe22 , b/522304329 ) - Fix
UriDeepLinkMatcherto correctly identifyhttpscheme as a positive match withhttpswhen matching aDeepLinkRequestto aUriDeepLinkMatcher. ( I3a62b , b/518804264 ) -
DeepLinkMatcher.MatchResultcomparator now returns 0 by default when two results are equal. ( I48ddb , b/518841353 ) -
UriDeepLinkMatcherwill now return a nullUriMatchResultinstead of throwing an exception when match request fails due to missing required arguments. ( I669a7 , b/470282247 , b/512923412 )
Version 1.2.0-alpha04
3 июня 2026 г.
androidx.navigation3:navigation3-*:1.2.0-alpha04 is released. Version 1.2.0-alpha04 contains these commits .
Исправлены ошибки
- Fixed overlay animation issue where nested overlays such as
ModalBottomSheetare re-aniamting unexpectedly when the overlays above it are popped. ( Ia2b9e , b/502624496 )
Version 1.2.0-alpha03
19 мая 2026 г.
androidx.navigation3:navigation3-*:1.2.0-alpha03 is released. Version 1.2.0-alpha03 contains these commits .
Новые функции
Navigation 3 now supports deep links with DeepLinkRequest and DeepLinkMatcher :
DeepLinkRequesta requested deep link containing aDeepLinkUriand an optional mimeType or action(Android only). Along with the new class are companion functions to create an instance with either auri, amimeType, or anaction. The android platform also has a helper to build a request from an Intent. ( Iaaac9 , b/470282247 )val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home") val uriAndMimeRequest = DeepLinkRequest.fromUriString( "https://sampledeeplink.com/user/profile?id=123", "image/png" )DeepLinkMatcherrepresents a deep link that can be matched with aDeepLinkRequest. Each matcher instance is associated with the navigation key that supports this deep link. A navigation key can be associated with multiple matchers. CallingDeepLinkMatcher.matchwill return aMatchResultthat contains the associated navigation key if match succeeds. There are two defaultDeepLinkMatcherimplementations:UriDeepLinkMatcherfor matching deep links based on Uri, andStaticKeyDeepLinkMatcherfor matching deep links with onlyDeepLinkMatcher.Filterthat match by aBoolean. ( I3798e , b/470282247 )UriDeepLinkMatcheran opinionated implementation ofDeepLinkMatcherthat handles deep link by matchingDeepLinkUrito a Serializable navigation key. It supports deep link arguments of Primitive types or Collection of primitives such as Lists, Arrays, and Sets. ( I1520b , b/470282247 )@Serializable data class UserKey(val id: Int): NavKey // declare a deep link supported by UserKey val userMatcher = UriDeepLinkMatcher( uriPattern = "www.sampledeeplink.com/user?userId={id}", serializer = serializer<UserKey>() ) // handle a requested deep link with fallback key val key = userMatcher.match(deepLinkRequest)?.key ?: HomeKeyAdded
DeepLinkUriwhich is a kotlin-multiplatform version ofandroid.net.Uri( Id4725 , b/470282247 )
Api Changes
- Bumped to
compileSdk 37to match Compose's compileSdk
Исправлены ошибки
- Fixed
AnimatedBottomSheetSample'sIllegalArgumentExceptionwhen displaying multiple overlays. The sampleSceneStrategywill now correctly calculate the last non-OverlaySceneand display it under all the overlay scenes. ( If2281 , b/506733412 ) - Bumped
NavigationEventdependency to 1.1.1 which removes the no-op NavigationEventHandler when in inspection mode to enable Predictive Back in Android Studio Previews. ( I487fd )
Version 1.2.0-alpha02
22 апреля 2026 г.
androidx.navigation3:navigation3-*:1.2.0-alpha02 is released. Version 1.2.0-alpha02 contains these commits .
API Changes
- Rename
onBacktoonBackCompletedand addonBackCancelledto NavigationBackHandler to support handling cancelled back gestures. ( I92741 ) - Add
NavigationBackHandlerto simplify handling back gestures and predictive back when usingSceneState. This allows developers to more easily create custom UI components that support standard back navigation and predictive gestures without manually calculating back stack deltas. ( I6a055 ) - Add
rememberNavigationEventStateto simplify connectingSceneStatewith predictive back handling. ( Iae49c )
Новые функции
- Added a
ResultEventBusAPI to allow for passing results between NavEntries with theLocalResultEventBusprovided by the newResultEventBusNavEntryDecorator. Passed in results can be assessed as a state withResultEventBus#conflateAsStateor as a flow of results withResultEffect.
Version 1.2.0-alpha01
8 апреля 2026 г.
androidx.navigation3:navigation3-*:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits .
Исправлены ошибки
- Accessing
LocalNavAnimatedContentScopefrom anOverlayScenewill no longer cause anIllegalStateExceptionasOverlayScenesare now provided with a no-opLocalAnimatedContentScope. ( I2f00c , b/486067688 )
Navigation3 Version 1.1
Version 1.1.6
12 августа 2026 г.
androidx.navigation3:navigation3-*:1.1.6 is released. Version 1.1.6 contains these commits .
Исправлены ошибки
-
NavEntry.contentKeynow defaults to a composite ofkey.toString()andkey::class.toString(). This ensures that data objects that share the same name but implement different interfaces will no longer have the samecontentKey. However, JS platform'skey::classonly returns simple class name instead of fully qualified name, so JS platform should still implement customcontentKeyfor data objects with duplicate names. ( I1fbbb , b/512534342 ) - Fixed
IllegalArgumentExceptionthrown bySaveableStateHolderfor key reuse when multiple pop transitions are in-flight simulatenously due to rapid popping from the back stack. ( I4d728 , b/516312097 )
Версия 1.1.5
29 июля 2026 г.
androidx.navigation3:navigation3-*:1.1.5 is released. Version 1.1.5 contains these commits .
Исправлены ошибки
- The
entryProviderDSL now prioritizesNavEntrybuilt with a key instance, for exampleentry(key = userKey) { ... }overNavEntrybuilt with a key class such asentry<UserKey>{ ... }.( Ib5ec9 , b/533331924 )
Версия 1.1.4
1 июля 2026 г.
androidx.navigation3:navigation3-*:1.1.4 is released. Version 1.1.4 contains these commits .
Исправлены ошибки
- Fixed popped entry disappearing immediately when popping to an entry that has a nested metadata containing lambda values. ( Idb872 , b/520494430 )
Версия 1.1.3
17 июня 2026 г.
androidx.navigation3:navigation3-*:1.1.3 is released. Version 1.1.3 contains these commits .
Исправлены ошибки
Fixed overlay animation issue where nested overlays such as
ModalBottomSheetare re-aniamting unexpectedly when the overlays above it are popped. ( Ia2b9e , b/502624496 )Bumped
NavigationEventdependency to 1.1.2 which removed the no-opNavigationEventHandlerwhen in inspection mode to enable Predictive Back in Android Studio Previews.
Версия 1.1.2
19 мая 2026 г.
androidx.navigation3:navigation3-*:1.1.2 is released. Version 1.1.2 contains these commits .
Исправлены ошибки
- Bumped
NavigationEventdependency to 1.1.1 which removed the no-opNavigationEventHandlerwhen in inspection mode to enable Predictive Back in Android Studio Previews.
Версия 1.1.1
22 апреля 2026 г.
androidx.navigation3:navigation3-*:1.1.1 is released. Version 1.1.1 contains these commits .
Исправлены ошибки
- Accessing
LocalNavAnimatedContentScopefrom anOverlayScenewill no longer cause anIllegalStateExceptionasOverlayScenesare now provided with a no-opLocalAnimatedContentScope. ( I2f00c , b/486067688 )
Версия 1.1.0
8 апреля 2026 г.
androidx.navigation3:navigation3-*:1.1.0 is released. Version 1.1.0 contains these commits .
1.1.0 is now stable!
Important changes since 1.0.0
Shared Elements between Scenes - Navigation3 now supports treating scenes as shared element object. This means that when the scenes change, it is possible to ensure they have a smooth transition. You can enable this by passing a SharedTransitionScope to either the NavDisplay or to rememberSceneState .
SceneDecoratorStrategy - Introduction of SceneDecoratorStrategy to support uses cases such as decorating scenes with common UI components or sharing state across scenes.
NavMetadata DSL - Navigation3 now provides a new type-safe metadata DSL. The DSL uses a new MetadataKey interface that allows for defining the key and value types that they wish to provide to the metadata map. This also added new NavMetadataKeys for NavDisplay transitions so that they can be used with the new metadata DSL to add transitions to NavDisplay .
OverlayScene Animations - The OverlayScene interface has a new onRemoved suspending callback. This callback is invoked after a key associated with the scene is removed from the backstack, but before it leaves composition. This allows exit animations called within onRemoved to complete before the overlay scene is removed from composition.
Other Changes - NavDisplay and rememberSceneState now take a List<SceneStrategy> instead of the previous single SceneStrategy parameter that was chained by the then infix. - You can now dynamically add metadata with consideration for the entry key via the EntryProvider DSL.
Version 1.1.0-rc01
25 марта 2026 г.
androidx.navigation3:navigation3-*:1.1.0-rc01 is released. Version 1.1.0-rc01 contains these commits .
Исправлены ошибки
-
NavDisplaynow ensures that entries that are displayed underneath overlays have theirLifecyclecapped atSTARTED. This ensures APIs likedropUnlessResumedcontinue to work when using dialogs. ( If209f , b/483966071 ) - Fixed an issue in
NavDisplaywhere navigating back and forth between the same screens and interrupting the animations between the two could cause the z-order of the screens to be incorrect. ( I4d491 , b/459419800 )
Version 1.1.0-beta01
11 марта 2026 г.
androidx.navigation3:navigation3-*:1.1.0-beta01 is released. Version 1.1.0-beta01 contains these commits .
Version 1.1.0-alpha05
25 февраля 2026 г.
androidx.navigation3:navigation3-*:1.1.0-alpha05 is released. Version 1.1.0-alpha05 contains these commits .
API Changes
-
NavDisplayandrememberSceneStatenow take aList<SceneStrategy>instead of the previous singleSceneStrategyparameter that was chained by thetheninfix. This more closely aligns with theList<SceneDecoratorStrategy<T>>that both of these APIs already take. The previous APIs have been deprecated. ( I78b2c , b/482108465 ) - Added a metadata #contains operator to check if the metadata map contains the given
NavMetadataKey. ( Ic30db , b/485311895 ) - Added
NavMetadataKeyDialogKeyforDialogSceneStrategyto use with Metadata DSL. ( Ic7a26 , b/483388817 )
Version 1.1.0-alpha04
February 11, 2026
androidx.navigation3:navigation3-*:1.1.0-alpha04 is released. Version 1.1.0-alpha04 contains these commits .
Новые функции
- Navigation3 now provides a new type-safe metadata DSL. The DSL uses a new
MetadataKeyinterface that allows for defining the key and value types that they wish to provide to the metadata map. This also added newNavMetadataKeys forNavDisplaytransitions so that they can be used with the newmetadataDSL to add transitions toNavDisplay. ( Ic10ef , Ic049c , b/476213928 )
API Changes
- The
OverlaySceneinterface has a newonRemovedsuspending callback. This callback is invoked after a key associated with the scene is removed from the backstack, but before it leaves composition. This allows exit animations called withinonRemovedto complete before the overlay scene is removed from composition. ( I29a72 , b/440558061 ) -
SceneStrategyhas separated the decoration function into a newSceneDecoratorStrategy. This new interface is what is should be used to decorate scenes. There are new APIs forNavDisplayandrememberSceneStateto allow the addition ofSceneDecoratorStrategies. ( If9385 , b/477669607 , b/477670333 )
Исправлены ошибки
- Fixed an error where passing a
SharedTransitionLayoutinto either theNavDisplayorrememberSceneStateand using anyOverlayScenewould cause a crash because usingSharedTransitionLayoutonly works withNavEntriesthat are rendered as part of theAnimatedContentandOverlaySceneare rendered in their own windows separately. ( I1bb76 , b/478664101 )
Dependency Update
- From
Navigation31.0.1:Navigation3now depends onNavigationEvent1.0.2. This fixes anIllegalStateExceptioncaused by usingNavDisplayduringAndroidStudioPreviews. ( Id7212 , b/477149762 )
Version 1.1.0-alpha03
28 января 2026 г.
androidx.navigation3:navigation3-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits .
Новые функции
- You can now dynamically add metadata with consideration for the entry key via the
EntryProviderDSL. ( I942fb , b/474416976 )
Version 1.1.0-alpha02
14 января 2026 г.
androidx.navigation3:navigation3-*:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits .
Новые функции
-
SceneStrategynow supports nesting scenes via a newcalculatedScene(Scene)function. This means thatSceneStrategy's can be customized to provide additional functionality to other scenes. ( I5df7c , b/440333896 )
Version 1.1.0-alpha01
3 декабря 2025 г.
androidx.navigation3:navigation3-*:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits .
API Changes
-
Navigation3now supports treating scenes as shared element object. This means that when the scenes change, it is possible to ensure they have a smooth transition. You can enable this by passing aSharedTransitionScopeto either theNavDisplayor torememberSceneState. ( I15868 )
Версия 1.0
Версия 1.0.1
February 11, 2026
androidx.navigation3:navigation3-*:1.0.1 is released. Version 1.0.1 contains these commits .
Dependency Update
-
Navigation3now depends onNavigationEvent1.0.2. This fixes anIllegalStateExceptioncaused by usingNavDisplayduringAndroidStudioPreviews. ( Id7212 , b/477149762 )
Версия 1.0.0
19 ноября 2025 г.
androidx.navigation3:navigation3-*:1.0.0 is released. Version 1.0.0 contains these commits .
Introducing Navigation3!
- The Navigation3 library is now stable! Navigation3 is the AndroidX Compose first approach to navigation.
- For more information, see our announcement blog post , visit the resources , and try the recipes .
Version 1.0.0-rc01
November 05, 2025
androidx.navigation3:navigation3-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits .
Исправлены ошибки
-
NavDisplaynow sets aLocalLifecycleOwnerat theScenelevel that allows scene authors to determine whether all transitions have finished by checking that theLifecycle.StateisRESUMED. The behavior of theLocalLifecycleOwnerat theNavEntrylevel is unchanged: it also remains capped atSTARTEDif a transition is in progress and is additionally capped atCREATEDif thatNavEntryhas been popped from the back stack and is in the process of animating out. ( I03113 , b/454045829 )
Version 1.0.0-beta01
22 октября 2025 г.
androidx.navigation3:navigation3-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits .
API Changes
-
SceneStrategyScopenow only has a no argument public constructor, suitable for testing yourSceneStrategyand the returnedScenein isolation. For more complex use cases, please userememberSceneState(). ( I8440c , b/451679047 )
Исправлены ошибки
- Fixed infinite loop when chaining
SceneStrategywiththen. ( Iba3f0 , b/450323470 ) - Fixed screen flicker when swapping the
backStackpassed toNavDisplayand using animations. ( Ief7b5 , b/450967248 )
Version 1.0.0-alpha11
October 08, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits .
API Changes
- The
calculateScenemethod onSceneStrategyis no longer@Composable. Instead, consider moving this work to the construction of yourSceneStrategymethod (ie, in arememberMySceneStrategy()method) that fully allows you to define the lifetime of anyrememberSaveablevalues or keyrememberstatements off of the correct values. ( If1733 , b/448709506 ) - The
onBackparameter forSceneStrategy.calculateScenehas been moved into the new receiver scope ofSceneStrategyScopeto make it more clear that this is an optional parameter and provide an extension point for future Navigation3 features. ( I3aea3 , b/448460407 ) - The
onBacklambda passed intoNavDisplayand to yourSceneStrategyno longer provides acount: Intparameter to indicate when multiple entries should be popped. Instead, the() -> Unitlambda will now be called multiple times in a row in the rare case where your Scene requests popping multiple entries. ( Idedb5 , b/446989346 ) - Remove the
NavEntryWrapperclass and replace its functionality with a finalNavEntryclass with a new secondary constructor that takes aNavEntrywith new content. This will allow continued support for wrapping an entry with new content. ( I7da2a , b/444447130 ) - The
navEntryDecoratorfunction which creates and returns aNavEntryDecoratorhas been removed and replaced by theNavEntryDecoratorclass which is now made public and open for subclassing. ( If81f8 , b/444447434 , b/447381176 ) -
SavedStateNavEntryDecoratorhas been renamed toSaveableStateHolderNavEntryDecoratorsince it decorates entries with aSaveableStateHolder. The decorator has also been refactored from a function to a class since it is functionally a factory forNavEntryDecorator. ( Ie6013 , b/447381176 ) - Custom displays using
SceneStateas an alternative to usingNavDisplayno longer are required to use theLocalEntriesToRenderInCurrentScenecomposition local, which is now internal. ( Ic40ef , b/414668196 ) - Removed
SceneSetupNavEntryDecoratorandrememberSceneSetupNavEntryDecorator()from the public API surface. This functionality now is included by default without requiring you to manually include it. ( Ieae42 , b/444479133 ) -
NavEntry,DialogScene,SinglePaneScene, andSceneStatenow all implement equals. ( I96121 ) - Scene interface has a new metadata field to attach scene-specific metadata for NavDisplay. This allows a Scene to override the metadata on the
NavDisplay, for instance with transitions. ( I1fd96 , b/443955625 ) - Simplify
rememberNavBackStacksignature by removing the redundant generic type parameter. The function now acceptsvararg elements: NavKey. ( I03e45 ) - The default animations for
NavDisplayare now part of the common API which allows them to be called from all platforms. ( I71af9 , b/447147159 ) - Rename
EntryProviderBuildertoEntryProviderScopeto accurately reflect that the class is a Kotlin DSL providing a scope to buildNavEntries. ( Ia7465 )
Исправлены ошибки
-
rememberNavBackStack()now enforces polymorphic serialization for NavKey and requires a customSavedStateConfigurationthat is configured to ensure correct state restoration. KDoc have been updated to reflect the requirement that all NavKey subtypes must be registered in the provided SerializersModule. ( I6de37 , I782f2 , b/446664383 )
Version 1.0.0-alpha10
24 сентября 2025 г.
androidx.navigation3:navigation3-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .
API Changes
- Add new
NavDisplayoverload that takes a list ofNavEntry<T>that has been decorated byrememberDecoratedNavEntries. ( I4025b , b/441940314 ) - Moved
DialogSceneto a new package. ( Ia5840 ) - Remove public API
DecorateNavEntry. Instead userememberDecoratedNavEntriesto wrap a NavEntry with a list of decorators. ( Id8c09 ) - Navigation3 UI now provides new default
transitionSpecproperties. ( Ibcabd ) - Added a new
SceneStateobject to help manage scenes. This also provides a newNavDisplayoverload that takes theSceneStateand theNavigationEventState. ( Idfb46 , b/444479133 ) -
NavDisplaynow allows you to customize the transitions based on whatSceneyou are going to and from by looking at theTransition'scurrentStateandtargetState. ( I906cc , b/443872322 ) -
NavigationEventInfois now anabstract classinstead of aninterface. Update all custom implementations to inherit from the class (e..g,data class MyInfo : NavigationEventInfo()). ( I1e59c , b/444734264 ) - The
navigationevent-composehandler APIs are updated.NavigationEventHandlerandNavigationBackHandler(and variants) now support a new overload that accepts a hoistedNavigationEventStates. The simple overloads (takingcurrentInfo) are preserved and now use this new state model internally. ( Ic3251 , b/444734264 ) - All of the Scene APIs have been moved out of navigation3-ui to navigation3-runtime. This means they are now available on all platforms supported by navigation3-runtime. ( I431d0 , b/444449993 )
- Added new
rememberDecoratedNavEntriesoverload that takes a list ofNavEntryto decorate. The input entries can be already decorated with other entry decorators. ( I5a034 , b/444230270 ) - Remove navigation3 wildcard type parameters ( I02540 )
- Improved the handling of generics for the
entryProviderDSL. If you were previously importingandroidx.navigation3.runtime.entry, this is no longer required. ( I299fc ) - Restrict the reflection-based
NavBackStackSerializeroverload to Android. This prevents implicit runtime serialization failures on non-Android platforms by enforcing the use of the explicitSavedStateConfigurationoverload in multiplatform code. ( I73313 , b/420443609 ) - Make
NavigationEvent'sswipeEdgean@IntDef( Icee54 , b/443950342 ) - Restrict
NavBackStackserialization to Android. This prevents runtime failures on non-Android platforms. For multiplatform state saving, use therememberNavBackStackoverload with an explicitSavedStateConfiguration. ( 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
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
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 .