如需开始使用 Navigation 3,请将该库以及任何支持库添加到您的项目中。您可以使用下表来决定要添加哪些库。
工件
名称 | 功能 | 工件 |
|---|---|---|
Navigation 3 运行时库 | 核心导航 3 API。包括 | androidx.navigation3:navigation3-runtime |
Navigation 3 界面库 | 提供用于显示内容的类,包括 | androidx.navigation3:navigation3-ui |
导航 3 的 ViewModel 生命周期 | 允许将 ViewModel 的范围限定为返回堆栈中的条目。 | androidx.lifecycle:lifecycle-viewmodel-navigation3 |
适用于 Navigation 3 的 Material 3 自适应布局 | 提供自适应布局(SceneStrategies、场景和元数据定义),以便与 NavDisplay 搭配使用。 | androidx.compose.material3.adaptive:adaptive-navigation3 |
允许序列化导航键。 | 插件:org.jetbrains.kotlin.plugin.serialization 库: org.jetbrains.kotlinx:kotlinx-serialization-core |
项目设置
如需将 Navigation 3 库添加到现有项目中,请将以下内容添加到 libs.versions.toml:
[versions] nav3Core = "1.0.0-rc01" lifecycleViewmodelNav3 = "2.10.0-rc01" kotlinSerialization = "2.1.21" kotlinxSerializationCore = "1.8.1" material3AdaptiveNav3 = "1.3.0-alpha03" [libraries] # Core Navigation 3 libraries androidx-navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "nav3Core" } androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "nav3Core" } # Optional add-on libraries androidx-lifecycle-viewmodel-navigation3 = { module = "androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "lifecycleViewmodelNav3" } kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinxSerializationCore" } androidx-material3-adaptive-navigation3 = { group = "androidx.compose.material3.adaptive", name = "adaptive-navigation3", version.ref = "material3AdaptiveNav3" } [plugins] # Optional plugins jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinSerialization"} 此外,请将编译 SDK 更新到 36 或更高版本:
[versions] compileSdk = "36" 将以下内容添加到您的应用 build 文件 app/build.gradle.kts:
plugins { ... // Optional, provides the @Serialize annotation for autogeneration of Serializers. alias(libs.plugins.jetbrains.kotlin.serialization) } dependencies { ... implementation(libs.androidx.navigation3.ui) implementation(libs.androidx.navigation3.runtime) implementation(libs.androidx.lifecycle.viewmodel.navigation3) implementation(libs.androidx.material3.adaptive.navigation3) implementation(libs.kotlinx.serialization.core) }