navigation3

  
Navigation 3 是一款旨在与 Compose 搭配使用的新导航库。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2025 年 7 月 2 日 - - - 1.0.0-alpha05

声明依赖项

如需添加 navigation3 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

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

Kotlin

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

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

此工件没有版本说明。

版本 1.0

版本 1.0.0-alpha05

2025 年 7 月 2 日

发布了 androidx.navigation3:navigation3-*:1.0.0-alpha05。版本 1.0.0-alpha05 中包含这些提交内容

行为变更

  • NavEntry 的状态现在严格基于传递给 NavDisplay 的当前装饰器列表。这意味着,如果存在多个返回堆栈,装饰器应沿着返回堆栈进行交换,以保留返回堆栈上 NavEntry 的状态。否则,状态将像条目被弹出(而不是交换)一样被清除。(I7a759b/428033667

版本 1.0.0-alpha04

2025 年 6 月 18 日

发布了 androidx.navigation3:navigation3-*:1.0.0-alpha04。版本 1.0.0-alpha04 中包含这些提交内容

API 变更

  • NavEntry.content 现已设为不公开。如需调用 NavEntry 内容,请调用新的 NavEntry.Content() API,该 API 不再需要 key 参数即可调用。(Icd0fdb/420991203
  • NavEntry.key 现在是一个私有字段。NavEntry 及其相关状态应通过新的 contentKey 字段进行标识,该字段由新的 contentKeyFactory lambda 生成,默认值为从 NavEntry.key 生成的可保存哈希值(I81a6cb/422001357b/420991203 I2d7d4b/420991203b/422841812

依赖项变更

  • Navigation3 现在依赖于新的 androidx.navigationevent.compose 制品。

版本 1.0.0-alpha03

2025 年 6 月 4 日

发布了 androidx.navigation3:navigation3-*:1.0.0-alpha03。版本 1.0.0-alpha03 中包含这些提交内容

bug 修复

  • Navigation3 将不再清除已换出并替换为另一个 backStack 实例的 backStacks 的装饰器状态。(I28a42b/415076044

版本 1.0.0-alpha02

2025 年 5 月 23 日

发布了 androidx.navigation3:navigation3-*:1.0.0-alpha02。版本 1.0.0-alpha02 中包含这些提交内容

bug 修复

  • 修复了 SavedStateNavEntryDecorator 的问题,该问题会导致具有相同属性值的不同数据类发生冲突。(b/418070648Iff4775
  • 修复了在未声明显式依赖项的情况下运行时会导致崩溃的类缺失问题。(b/419049149I4b4ed

版本 1.0.0-alpha01

2025 年 5 月 20 日

发布了 androidx.navigation3:navigation3-*:1.0.0-alpha01。版本 1.0.0-alpha01 中包含这些提交内容

新功能

Navigation3 是一个全新的导航库,专门用于处理 Jetpack Compose 应用内导航。androidx.navigation3.runtime 制品提供构建块,而 androidx.navigation3.ui 制品通过 NavDisplay API 提供界面层。开发者可以直接向 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 指南