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 tham khảo bảng bên dưới để quyết định 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

API Core Navigation 3. 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 ViewModel cho Navigation 3

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

androidx.lifecycle:lifecycle-viewmodel-navigation3

Có trong các bản dựng tổng quan nhanh

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 tổng quan nhanh

Chuyển đổi tuần tự KotlinX

Cho phép chuyển đổi tuần tự các phím điều hướng.

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

Thư viện:

org.jetbrains.kotlinx:kotlinx-serialization-core

org.jetbrains.kotlinx:kotlinx-serialization-json

Thiết lập dự án

Để thêm thư viện Navigation 3 vào dự án hiện có, hãy thêm nội dung sau vào libs.versions.toml:

[versions]
nav3Core = "1.0.0-alpha01"
nav3Material = "1.0.0-SNAPSHOT"
nav3Lifecycle = "1.0.0-alpha01"
kotlinSerialization = "2.1.21"
kotlinxSerializationCore = "1.8.1"

[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-material3-navigation3 = { group = "androidx.compose.material3.adaptive", name = "adaptive-navigation3", version.ref = "nav3Material" }
androidx-lifecycle-viewmodel-navigation3 = { module = "androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "nav3Lifecycle" }
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinxSerializationCore" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationCore" }

[plugins]
# Optional plugins
jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinSerialization"}

Thêm nội dung sau vào tệp bản dựng ứng dụng 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)
    implementation(libs.androidx.lifecycle.viewmodel.navigation3)
    implementation(libs.androidx.material3.navigation3)
    implementation(libs.kotlinx.serialization.core)
    implementation(libs.kotlinx.serialization.json)
}