навигация3

Navigation 3 — это новая библиотека навигации, разработанная для работы с Compose.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
1 июля 2026 г. 1.1.4 - - 1.2.0-alpha05

Объявление зависимостей

Чтобы добавить зависимость от navigation3, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

Круто

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha05"
    implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha05"
}

Котлин

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha05")
    implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha05")
}

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Для этого артефакта отсутствуют примечания к выпуску.

Версия 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 - 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 extras field for a Map<String, Any> to attach additional request information. ( If81d5 , b/513200887 ) - A new requestExtras dsl is added as a type safe way to build a map of extras. The dsl provides a put function to store pairs of RequestExtrasKey to 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 . Для создания запроса, связанного с Action, используйте новое поле DeepLinkRequest.extras . ( Id0c90 , b/513200887 ) - Удалена фабричная функция fromMimeType . Для создания запроса, связанного с mimeType, используйте новое поле DeepLinkRequest.extras . ( I85131 , b/513200887 ) - (Только для Android) Удалена фабричная функция fromIntent . Заменена новым конструктором, который принимает Intent и карту extras. ( Ia0498 , b/513200887 , b/522194187 ) - Удалены фабричные функции fromUri и fromUriString . Заменены новыми конструкторами, которые принимают либо DeepLinkUri , либо необработанный строковый URI. ( Id5b6f , b/522194187 ) — DeepLinkMatcher , DeepLinkMatcher.MatchResult и их подклассы теперь принимают ковариантный тип T (out T), так что иерархические ключи не потребуют приведения типов, как это используется с Matchers. ( I1e453 , b/525094876 ) — Параметр конструктора UriMatchResult для карты аргументов теперь по умолчанию является пустой картой. ( I3acdd ) — Абстрактный класс DeepLinkMatcher.Filter теперь является функциональным интерфейсом. Поле конструктора filter удалено и вместо этого должно передаваться непосредственно в подкласс. ( I9eb7d , b/522194187 )

Bug Fixes - Fixed popped entry disappearing immediately when popping to an entry that has a nested metadata containing lambda values. ( Idb872 , b/520494430 ) - Fixed UriDeepLinkMatcher so that it will return a null UriMatchResult instead of throwing MissingFieldException when required arguments are missing during matching. ( I5322f , b/524663005 ) - A UriDeeplinkMatcher containing uri with https scheme can only be matched with requests that also have https scheme. ( Ibfe22 , b/522304329 ) - Fix UriDeepLinkMatcher to correctly identify http scheme as a positive match with https when matching a DeepLinkRequest to a UriDeepLinkMatcher . ( I3a62b , b/518804264 ) - Компаратор DeepLinkMatcher.MatchResult теперь по умолчанию возвращает 0, если два результата равны. ( I48ddb , b/518841353 ) - UriDeepLinkMatcher теперь будет возвращать null UriMatchResult вместо того, чтобы выбрасывать исключение, если запрос на совпадение не удается из-за отсутствия необходимых аргументов. ( 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 a requested deep link containing a DeepLinkUri and an optional mimeType or action(Android only). Along with the new class are companion functions to create an instance with either a uri , a mimeType , or an action . 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"
    )
    
  • DeepLinkMatcher represents a deep link that can be matched with a DeepLinkRequest . Each matcher instance is associated with the navigation key that supports this deep link. A navigation key can be associated with multiple matchers. Calling DeepLinkMatcher.match will return a MatchResult that contains the associated navigation key if match succeeds. There are two default DeepLinkMatcher implementations: UriDeepLinkMatcher for matching deep links based on Uri, and StaticKeyDeepLinkMatcher for matching deep links with only DeepLinkMatcher.Filter that match by a 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 )

Версия 1.1.4

1 июля 2026 г.

Выпущена версия androidx.navigation3:navigation3-*:1.1.4 . Версия 1.1.4 содержит следующие коммиты .

Исправлены ошибки

  • 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 . Версия 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 , до того, как сцена наложения будет удалена из композиции.

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.

Версия 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 and rememberSceneState now take a List<SceneStrategy> instead of the previous single SceneStrategy parameter that was chained by the then infix. This more closely aligns with the List<SceneDecoratorStrategy<T>> that both of these APIs already take. The previous APIs have been deprecated. ( I78b2c , b/482108465 )
  • Добавлен оператор #contains для проверки наличия в карте метаданных заданного NavMetadataKey . ( Ic30db , b/485311895 )
  • Добавлен ключ NavMetadataKey DialogKey для DialogSceneStrategy для использования с DSL метаданных. ( Ic7a26 , b/483388817 )

Версия 1.1.0-alpha04

11 февраля 2026 г.

Выпущена версия androidx.navigation3:navigation3-*:1.1.0-alpha04 . Версия 1.1.0-alpha04 содержит следующие коммиты .

Новые функции

  • 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 NavMetadataKey s for NavDisplay transitions so that they can be used with the new metadata DSL to add transitions to NavDisplay . ( Ic10ef , Ic049c , b/476213928 )

Изменения в API

  • 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. ( 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 )

Обновление зависимостей

  • Начиная с Navigation3 1.0.1: Navigation3 теперь зависит от NavigationEvent 1.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 зависит от NavigationEvent 1.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 или операторов key remember на основе правильных значений. ( If1733 , b/448709506 )
  • Параметр onBack для SceneStrategy.calculateScene перемещен в новую область видимости получателя SceneStrategyScope , чтобы сделать более понятным, что это необязательный параметр, и предоставить точку расширения для будущих функций Navigation3. ( I3aea3 , b/448460407 )
  • The onBack lambda passed into NavDisplay and to your SceneStrategy no longer provides a count: Int parameter to indicate when multiple entries should be popped. Instead, the () -> Unit lambda will now be called multiple times in a row in the rare case where your Scene requests popping multiple entries. ( 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 )
  • Removed SceneSetupNavEntryDecorator and rememberSceneSetupNavEntryDecorator() 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 и 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 now allows you to customize the transitions based on what Scene you are going to and from by looking at the Transition 's currentState and targetState . ( 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 )

Изменения зависимостей

Версия 1.0.0-alpha08

27 августа 2025 г.

Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит следующие коммиты .

Новые функции

  • Added new Kotlin MultiPlatform (KMP) targets to Navigation3 Runtime artifacts. Navigation3 Runtime now 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 for Navigation3 UI artifact. On other platforms, you will need to implement your own custom NavDisplay . If you would like to see it supported, please vote on the Jetbrains issue here and track the progress for additional support there.
  • Объект 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

Изменения в API

  • Теперь SavedStateNavEntryDecorator использует SaveableStateRegistry , встроенный в SaveableStateProvider , для сохранения и восстановления состояний. ( If8d9a )
  • В параметр predictivePopTransitionSpec теперь передается край свайпа, что позволяет настраивать переход в зависимости от того, с какого края пользователь начал жест «Предиктивный возврат». ( I753a8 )

Исправлены ошибки

  • Исправлена ​​ошибка, из-за которой пользовательские сцены бесконечно пересчитывались, поскольку последняя сцена не запоминалась. ( I7ba84 , b/418153031 )

Обновление зависимостей

Версия 1.0.0-alpha06

30 июля 2025 г.

Выпущена версия androidx.navigation3:navigation3-*:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит следующие коммиты .

Обновление зависимостей

Версия 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 используйте новый API NavEntry.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

Navigation 3 — это новая библиотека навигации, разработанная для работы с Compose.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
1 июля 2026 г. 1.1.4 - - 1.2.0-alpha05

Объявление зависимостей

Чтобы добавить зависимость от navigation3, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

Круто

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha05"
    implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha05"
}

Котлин

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha05")
    implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha05")
}

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

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.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Для этого артефакта отсутствуют примечания к выпуску.

Версия 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 - 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 extras field for a Map<String, Any> to attach additional request information. ( If81d5 , b/513200887 ) - A new requestExtras dsl is added as a type safe way to build a map of extras. The dsl provides a put function to store pairs of RequestExtrasKey to Any . The Map<String, Any>.get(key) extension function can be used to read from the map with a RequestExtrasKey ( I5091c , b/513200887 ) - (Android only) Added an ActionExtrasKey and actionExtra function to create an extras map with ActionExtrasKey . ( Id0c90 , [b/513200887] - Added a MimeTypeExtrasKey and mimeTypeExtra function to create an extras map with MimeTypeExtrasKey . ( I85131 , b/513200887 )

DeepLinkMatcher - Added DeepLinkMatcher.mimeTypeFilter and DeepLinkMatcher.actionFilter functions to create DeepLinkMatcher.Filters that filter DeepLinkRequest by mimeType or action (Android only). Both filters match by string equality and is case-insensitive. ( Ie7e67 , b/513191950 )

Изменения в API

DeepLinkRequest - Remove fromAction factory function. To create a request associated with an Action, use the new DeepLinkRequest.extras field.( Id0c90 , b/513200887 ) - Removed fromMimeType factory function. To create a request associated with a mimeType, use the new DeepLinkRequest.extras field. ( I85131 , b/513200887 ) - (Android-only) Removed fromIntent factory function. Replaced by a new constructor that takes an Intent and extras map. ( Ia0498 , b/513200887 , b/522194187 ) - Removed factory functions fromUri and fromUriString . Replaced by new constructors that either take a DeepLinkUri or a raw string uri. ( Id5b6f , b/522194187 ) - DeepLinkMatcher , DeepLinkMatcher.MatchResult and 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 UriMatchResult constructor param for arguments map now defaults to an empty map. ( I3acdd ) - DeepLinkMatcher.Filter abstract class is now a functional interface. The filter constructor field is removed and instead should be passed directly in the subclass. ( I9eb7d , b/522194187 )

Bug Fixes - Fixed popped entry disappearing immediately when popping to an entry that has a nested metadata containing lambda values. ( Idb872 , b/520494430 ) - Fixed UriDeepLinkMatcher so that it will return a null UriMatchResult instead of throwing MissingFieldException when required arguments are missing during matching. ( I5322f , b/524663005 ) - A UriDeeplinkMatcher containing uri with https scheme can only be matched with requests that also have https scheme. ( Ibfe22 , b/522304329 ) - Fix UriDeepLinkMatcher to correctly identify http scheme as a positive match with https when matching a DeepLinkRequest to a UriDeepLinkMatcher . ( I3a62b , b/518804264 ) - DeepLinkMatcher.MatchResult comparator now returns 0 by default when two results are equal. ( I48ddb , b/518841353 ) - UriDeepLinkMatcher will now return a null UriMatchResult instead 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 ModalBottomSheet are 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 :

  • DeepLinkRequest a requested deep link containing a DeepLinkUri and an optional mimeType or action(Android only). Along with the new class are companion functions to create an instance with either a uri , a mimeType , or an action . 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"
    )
    
  • DeepLinkMatcher represents a deep link that can be matched with a DeepLinkRequest . Each matcher instance is associated with the navigation key that supports this deep link. A navigation key can be associated with multiple matchers. Calling DeepLinkMatcher.match will return a MatchResult that contains the associated navigation key if match succeeds. There are two default DeepLinkMatcher implementations: UriDeepLinkMatcher for matching deep links based on Uri, and StaticKeyDeepLinkMatcher for matching deep links with only DeepLinkMatcher.Filter that match by a Boolean . ( I3798e , b/470282247 )

  • UriDeepLinkMatcher an opinionated implementation of DeepLinkMatcher that handles deep link by matching DeepLinkUri to 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 ?: HomeKey
    
  • Added DeepLinkUri which is a kotlin-multiplatform version of android.net.Uri ( Id4725 , b/470282247 )

Api Changes

  • Bumped to compileSdk 37 to match Compose's compileSdk

Исправлены ошибки

  • Fixed AnimatedBottomSheetSample 's IllegalArgumentException when displaying multiple overlays. The sample SceneStrategy will now correctly calculate the last non- OverlayScene and display it under all the overlay scenes. ( If2281 , b/506733412 )
  • Bumped NavigationEvent dependency 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

  • Rename onBack to onBackCompleted and add onBackCancelled to NavigationBackHandler to support handling cancelled back gestures. ( I92741 )
  • Add NavigationBackHandler to simplify handling back gestures and predictive back when using SceneState . 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 rememberNavigationEventState to simplify connecting SceneState with predictive back handling. ( Iae49c )

Новые функции

  • Added a ResultEventBus API to allow for passing results between NavEntries with the LocalResultEventBus provided by the new ResultEventBusNavEntryDecorator . Passed in results can be assessed as a state with ResultEventBus#conflateAsState or as a flow of results with ResultEffect .

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 LocalNavAnimatedContentScope from an OverlayScene will no longer cause an IllegalStateException as OverlayScenes are now provided with a no-op LocalAnimatedContentScope . ( I2f00c , b/486067688 )

Version 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 )

Version 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 ModalBottomSheet are re-aniamting unexpectedly when the overlays above it are popped. ( Ia2b9e , b/502624496 )

  • Bumped NavigationEvent dependency to 1.1.2 which removed the no-op NavigationEventHandler when 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 NavigationEvent dependency to 1.1.1 which removed the no-op NavigationEventHandler when 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 LocalNavAnimatedContentScope from an OverlayScene will no longer cause an IllegalStateException as OverlayScenes are now provided with a no-op LocalAnimatedContentScope . ( 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 .

Исправлены ошибки

  • NavDisplay now ensures that entries that are displayed underneath overlays have their Lifecycle capped at STARTED . This ensures APIs like dropUnlessResumed continue to work when using dialogs. ( If209f , b/483966071 )
  • Fixed an issue in NavDisplay where 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

  • NavDisplay and rememberSceneState now take a List<SceneStrategy> instead of the previous single SceneStrategy parameter that was chained by the then infix. This more closely aligns with the List<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 NavMetadataKey DialogKey for DialogSceneStrategy to use with Metadata DSL. ( Ic7a26 , b/483388817 )

Version 1.1.0-alpha04

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 MetadataKey interface that allows for defining the key and value types that they wish to provide to the metadata map. This also added new NavMetadataKey s for NavDisplay transitions so that they can be used with the new metadata DSL to add transitions to NavDisplay . ( Ic10ef , Ic049c , b/476213928 )

Изменения в API

  • 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. ( I29a72 , b/440558061 )
  • SceneStrategy has separated the decoration function into a new SceneDecoratorStrategy . This new interface is what is should be used to decorate scenes. There are new APIs for NavDisplay and rememberSceneState to allow the addition of SceneDecoratorStrategies . ( If9385 , b/477669607 , b/477670333 )

Исправлены ошибки

  • Fixed an error where passing a SharedTransitionLayout into either the NavDisplay or rememberSceneState and using any OverlayScene would cause a crash because using SharedTransitionLayout only works with NavEntries that are rendered as part of the AnimatedContent and OverlayScene are rendered in their own windows separately. ( I1bb76 , b/478664101 )

Dependency Update

  • From Navigation3 1.0.1: Navigation3 now depends on NavigationEvent 1.0.2. This fixes an IllegalStateException caused by using NavDisplay during AndroidStudio Previews. ( 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 EntryProvider DSL. ( 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 .

Новые функции

  • SceneStrategy now supports nesting scenes via a new calculatedScene(Scene) function. This means that SceneStrategy '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

  • 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 . ( I15868 )

Версия 1.0

Версия 1.0.1

11 февраля 2026 г.

androidx.navigation3:navigation3-*:1.0.1 is released. Version 1.0.1 contains these commits .

Dependency Update

  • Navigation3 now depends on NavigationEvent 1.0.2. This fixes an IllegalStateException caused by using NavDisplay during AndroidStudio Previews. ( Id7212 , b/477149762 )

Версия 1.0.0

19 ноября 2025 г.

androidx.navigation3:navigation3-*:1.0.0 is released. Version 1.0.0 contains these commits .

Представляем Navigation3!

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 .

Исправлены ошибки

  • NavDisplay now sets a LocalLifecycleOwner at the Scene level that allows scene authors to determine whether all transitions have finished by checking that the Lifecycle.State is RESUMED . The behavior of the LocalLifecycleOwner at the NavEntry level is unchanged: it also remains capped at STARTED if a transition is in progress and is additionally capped at CREATED if that NavEntry has 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

  • SceneStrategyScope now only has a no argument public constructor, suitable for testing your SceneStrategy and the returned Scene in isolation. For more complex use cases, please use rememberSceneState() . ( I8440c , b/451679047 )

Исправлены ошибки

  • Fixed infinite loop when chaining SceneStrategy with then . ( Iba3f0 , b/450323470 )
  • Fixed screen flicker when swapping the backStack passed to NavDisplay and using animations. ( Ief7b5 , b/450967248 )

Version 1.0.0-alpha11

8 октября 2025 г.

androidx.navigation3:navigation3-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits .

Изменения в API

  • The calculateScene method on SceneStrategy is no longer @Composable . Instead, consider moving this work to the construction of your SceneStrategy method (ie, in a rememberMySceneStrategy() method) that fully allows you to define the lifetime of any rememberSaveable values or key remember statements off of the correct values. ( If1733 , b/448709506 )
  • The onBack parameter for SceneStrategy.calculateScene has been moved into the new receiver scope of SceneStrategyScope to make it more clear that this is an optional parameter and provide an extension point for future Navigation3 features. ( I3aea3 , b/448460407 )
  • The onBack lambda passed into NavDisplay and to your SceneStrategy no longer provides a count: Int parameter to indicate when multiple entries should be popped. Instead, the () -> Unit lambda 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 NavEntryWrapper class and replace its functionality with a final NavEntry class with a new secondary constructor that takes a NavEntry with new content. This will allow continued support for wrapping an entry with new content. ( I7da2a , b/444447130 )
  • The navEntryDecorator function which creates and returns a NavEntryDecorator has been removed and replaced by the NavEntryDecorator class which is now made public and open for subclassing. ( If81f8 , b/444447434 , b/447381176 )
  • SavedStateNavEntryDecorator has been renamed to SaveableStateHolderNavEntryDecorator since it decorates entries with a SaveableStateHolder . The decorator has also been refactored from a function to a class since it is functionally a factory for NavEntryDecorator . ( Ie6013 , b/447381176 )
  • Custom displays using SceneState as an alternative to using NavDisplay no longer are required to use the LocalEntriesToRenderInCurrentScene composition local, which is now internal. ( Ic40ef , b/414668196 )
  • Removed SceneSetupNavEntryDecorator and rememberSceneSetupNavEntryDecorator() 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 , and SceneState now 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 rememberNavBackStack signature by removing the redundant generic type parameter. The function now accepts vararg elements: NavKey . ( I03e45 )
  • The default animations for NavDisplay are now part of the common API which allows them to be called from all platforms. ( I71af9 , b/447147159 )
  • Rename EntryProviderBuilder to EntryProviderScope to accurately reflect that the class is a Kotlin DSL providing a scope to build NavEntries . ( Ia7465 )

Исправлены ошибки

  • rememberNavBackStack() now enforces polymorphic serialization for NavKey and requires a custom SavedStateConfiguration that 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

  • Add new NavDisplay overload that takes a list of NavEntry<T> that has been decorated by rememberDecoratedNavEntries . ( I4025b , b/441940314 )
  • Moved DialogScene to a new package. ( Ia5840 )
  • Remove public API DecorateNavEntry . Instead use rememberDecoratedNavEntries to wrap a NavEntry with a list of decorators. ( Id8c09 )
  • Navigation3 UI now provides new default transitionSpec properties. ( Ibcabd )
  • Added a new SceneState object to help manage scenes. This also provides a new NavDisplay overload that takes the SceneState and the NavigationEventState . ( Idfb46 , b/444479133 )
  • NavDisplay now allows you to customize the transitions based on what Scene you are going to and from by looking at the Transition 's currentState and targetState . ( I906cc , b/443872322 )
  • NavigationEventInfo is now an abstract class instead of an interface . Update all custom implementations to inherit from the class (e..g, data class MyInfo : NavigationEventInfo() ). ( I1e59c , b/444734264 )
  • The navigationevent-compose handler APIs are updated. NavigationEventHandler and NavigationBackHandler (and variants) now support a new overload that accepts a hoisted NavigationEventState s. The simple overloads (taking currentInfo ) 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 rememberDecoratedNavEntries overload that takes a list of NavEntry to 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 entryProvider DSL. If you were previously importing androidx.navigation3.runtime.entry , this is no longer required. ( I299fc )
  • Restrict the reflection-based NavBackStackSerializer overload to Android. This prevents implicit runtime serialization failures on non-Android platforms by enforcing the use of the explicit SavedStateConfiguration overload in multiplatform code. ( I73313 , b/420443609 )
  • Make NavigationEvent 's swipeEdge an @IntDef ( Icee54 , b/443950342 )
  • Restrict NavBackStack serialization to Android. This prevents runtime failures on non-Android platforms. For multiplatform state saving, use the rememberNavBackStack overload with an explicit SavedStateConfiguration . ( I1e418 , b/420443609 )

Исправлены ошибки

  • Fix crash during predictive back when nested NavDisplay has 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

  • The DecoratedNavEntryProvider has been replaced with rememberDecoratedNavEntries that creates and return NavEntries decorated with the list of provided decorators ( I0fe1c , b/441328236 )
  • NavBackStack is now generic over the NavKey type. This allows apps and libraries to define custom key types for their back stacks, rather than being restricted to NavKey . ( I4d190 , Iad2f4 , b/420443609 )
  • NavBackStack is 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 )
  • RememberNavBackStack has been moved to commonMain to ensure it is provided on all platform targets. ( Id69e7 , b/420443609 )

Исправлены ошибки

  • NavDisplay now correctly moves each individual NavEntry to the correct Lifecycle.State . ( I30aac , b/440145700 )
  • Fixed an issue where NavDisplay would ignore any nested NavigationEventDispatcherOwner set via the NavigationEvent library's LocalNavigationEventDispatcherOwner . ( I6224a )

Dependency Changes

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 Runtime artifacts. Navigation3 Runtime now 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 for Navigation3 UI artifact. On other platforms, you will need to implement your own custom NavDisplay . If you would like to see it supported, please vote on the Jetbrains issue here and track the progress for additional support there.
  • The NavDisplayInfo object is now public and can be used to retrieve the list of visible entries from the NavDisplay . ( Ibc91f )

Изменения в API

  • Added a new NavBackStackSerializer to be used in conjunction with rememberNavBackStack to perform state restoration. rememberNavBackStack() now also takes a SavedStateConfiguration that can be used to provide your own configuration. ( I2f4d2 , I4cd58 , b/420443609 )

Исправлены ошибки

Известные проблемы

  • 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 key provided to the NavEntry is not a String or your NavEntry has not overridden the contentKey and set it equal to the key (note that doing this enforces that your key can be saved into a Bundle ). 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

Изменения в API

  • SavedStateNavEntryDecorator now uses the SaveableStateRegistry built into SaveableStateProvider to save and restore states. ( If8d9a )
  • The predictivePopTransitionSpec is 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

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

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 the NavDisplay . 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

  • NavEntry.content is now private. To invoke NavEntry content, call the new NavEntry.Content() api which no longer requires a key parameter to invoke. ( Icd0fd , b/420991203 )
  • NavEntry.key is now a private field. The NavEntry and its relevant states should be identified by the new contentKey field which is generated from the new contentKeyFactory lambda and defaults to a saveable hash generated from NavEntry.key ( I81a6c , b/422001357 , b/420991203 I2d7d4 , b/420991203 , b/422841812 )

Dependency Changes

  • Navigation3 now depends on the new androidx.navigationevent.compose artifact.

Version 1.0.0-alpha03

4 июня 2025 г.

androidx.navigation3:navigation3-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits .

Исправлены ошибки

  • Navigation3 will no longer clear decorator states for backStacks that have been swapped out and replaced with another backStack instance. ( 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 SavedStateNavEntryDecorator which 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 .