מתחילים

כדי להתחיל להשתמש ב-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

פריסות מותאמות של 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

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

כדי להוסיף את ספריית Navigation 3 לפרויקט הקיים, מוסיפים את הקטע הבא ל-libs.versions.toml:

[versions]
nav3Core = "1.0.0-alpha01"
lifecycleViewmodelNav3 = "1.0.0-alpha01"
kotlinSerialization = "2.1.21"
kotlinxSerializationCore = "1.8.1"
material3AdaptiveNav3 = "1.0.0-SNAPSHOT"

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

# Note: The Material3 adaptive layouts library for Navigation 3 is currently
# only available in snapshot builds. Follow the instructions at androidx.dev to
# add the snapshot builds repository to your project.
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)
}