Bắt đầu

Để bắt đầu sử dụng Navigation 3, hãy thêm thư viện này vào dự án cùng với mọi thư viện hỗ trợ. Hãy sử dụng bảng dưới đây để quyết định nên thêm thư viện nào.

Tệp phần mềm

Tên

Chức năng

Cấu phần phần mềm

Thư viện thời gian chạy Navigation 3

Core Navigation 3 API. Bao gồm NavEntry, EntryProvider và DSL liên kết.

androidx.navigation3:navigation3-runtime

Thư viện giao diện người dùng Navigation 3

Cung cấp các lớp để hiển thị nội dung, bao gồm NavDisplayScene.

androidx.navigation3:navigation3-ui

Vòng đời của ViewModel cho Navigation 3

Cho phép ViewModel được giới hạn phạm vi trong các mục ở ngăn xếp lui.

androidx.lifecycle:lifecycle-viewmodel-navigation3

Bố cục thích ứng Material 3 cho Navigation 3

Cung cấp bố cục thích ứng (SceneStrategies, Scenes và định nghĩa siêu dữ liệu) để sử dụng với NavDisplay.

androidx.compose.material3.adaptive:adaptive-navigation3

Có trong các bản dựng chụp nhanh

KotlinX Serialization

Cho phép chuyển đổi các khoá điều hướng thành dữ liệu nối tiếp.

Trình bổ trợ: org.jetbrains.kotlin.plugin.serialization

Thư viện:

org.jetbrains.kotlinx:kotlinx-serialization-core

Thiết lập dự án

Để thêm thư viện Điều hướng 3 vào dự án hiện có, hãy thêm đoạn mã sau vào libs.versions.toml:

[versions]
nav3Core = "1.0.0-alpha11"
lifecycleViewmodelNav3 = "2.10.0-alpha05"
kotlinSerialization = "2.1.21"
kotlinxSerializationCore = "1.8.1"
material3AdaptiveNav3 = "1.3.0-alpha01"

[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"}

Ngoài ra, hãy cập nhật SDK biên dịch lên phiên bản 36 trở lên:

[versions]
compileSdk = "36"

Thêm đoạn mã sau vào tệp bản dựng app 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)
}