מתחילים

כדי להתחיל להשתמש ב-Navigation 3, מוסיפים את הספרייה לפרויקט יחד עם כל הספריות התומכות. תוכלו להיעזר בטבלה הבאה כדי להחליט אילו ספריות להוסיף.

ממצא

שם

מה הוא עושה

פריט

ספריית זמן ריצה של Navigation 3

Core Navigation 3 API. כולל את NavEntry, EntryProvider ואת ה-DSL המשויך.

androidx.navigation3:navigation3-runtime

ספריית UI של Navigation 3

מספק כיתות להצגת תוכן, כולל NavDisplay ו-Scene.

androidx.navigation3:navigation3-ui

מחזור החיים של ViewModel לניווט 3

מאפשרת להגדיר את ההיקף של ViewModels לפי רשומות בסטאק העורפי.

androidx.lifecycle:lifecycle-viewmodel-navigation3

זמין בגרסאות build של קובצי snapshot

פריסות מותאמות של Material 3 ל-Navigation 3

רכיב שמספק פריסות מותאמות (SceneStrategies, ‏ Scenes והגדרות מטא-נתונים) לשימוש עם NavDisplay.

androidx.compose.material3.adaptive:adaptive-navigation3

זמין בגרסאות build של קובצי snapshot

KotlinX Serialization

מאפשרת לסדר את מקשי הניווט בסדרה.

פלאגין: org.jetbrains.kotlin.plugin.serialization

ספריות:

org.jetbrains.kotlinx:kotlinx-serialization-core

org.jetbrains.kotlinx:kotlinx-serialization-json

הגדרת הפרויקט

כדי להוסיף את ספריית Navigation 3 לפרויקט הקיים, מוסיפים את הקטע הבא ל-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"}

מוסיפים את הקוד הבא לקובץ ה-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)
    implementation(libs.androidx.lifecycle.viewmodel.navigation3)
    implementation(libs.androidx.material3.navigation3)
    implementation(libs.kotlinx.serialization.core)
    implementation(libs.kotlinx.serialization.json)
}