навигация3

Navigation 3 — это новая навигационная библиотека, разработанная для работы с Compose.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-релиз Альфа-релиз
18 июня 2025 г. - - - 1.0.0-альфа04

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

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

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

классный

dependencies {
    implementation "androidx.navigation3.navigation3-runtime:1.0.0-alpha04"
    implementation "androidx.navigation3.navigation3-ui:1.0.0-alpha04"
}

Котлин

dependencies {
    implementation("androidx.navigation3.navigation3-runtime:1.0.0-alpha04")
    implementation("androidx.navigation3.navigation3-ui:1.0.0-alpha04")
}

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

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

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

Создать новый выпуск

Более подробную информацию смотрите в документации Issue Tracker .

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

Версия 1.0

Версия 1.0.0-альфа04

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-альфа03

4 июня 2025 г.

Выпущен androidx.navigation3:navigation3-*:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит эти коммиты .

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

  • Navigation3 больше не будет очищать состояния декоратора для backStacks , которые были выгружены и заменены другим экземпляром backStack . ( I28a42 , b/415076044 )

Версия 1.0.0-альфа02

23 мая 2025 г.

Выпущен androidx.navigation3:navigation3-*:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты .

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

  • Исправлена ​​проблема с SavedStateNavEntryDecorator , которая вызывала конфликты для разных классов данных с одинаковыми значениями свойств. ( b/418070648 , Iff4775 )
  • Исправлена ​​проблема с отсутствующим классом, которая могла приводить к сбоям при запуске без объявления явных зависимостей. ( b/419049149 , I4b4ed )

Версия 1.0.0-альфа01

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 .