ناوبری

ناوبری به تعاملاتی اشاره دارد که به کاربران اجازه می دهد در قسمت های مختلف محتوای برنامه شما حرکت کنند، به داخل و از آن خارج شوند.

مؤلفه ناوبری Android Jetpack شامل کتابخانه ناوبری ، افزونه Safe Args Gradle و ابزارهایی است که به شما در اجرای ناوبری برنامه کمک می کند. مؤلفه Navigation موارد استفاده متنوع از ناوبری، از کلیک ساده روی دکمه تا الگوهای پیچیده تر، مانند نوار برنامه و کشوی ناوبری را کنترل می کند.

مفاهیم کلیدی

جدول زیر یک نمای کلی از مفاهیم کلیدی در مسیریابی و انواع اصلی که برای اجرای آنها استفاده می کنید ارائه می دهد.

مفهوم

هدف

تایپ کنید

میزبان

یک عنصر رابط کاربری که حاوی مقصد پیمایش فعلی است. به این معنی که وقتی کاربر از طریق یک برنامه پیمایش می کند، برنامه اساساً مقصد را در داخل و خارج میزبان ناوبری تعویض می کند.

نمودار

ساختار داده ای که تمام مقاصد ناوبری را در برنامه و نحوه اتصال آنها با یکدیگر تعریف می کند.

NavGraph

کنترل کننده

هماهنگ کننده مرکزی برای مدیریت ناوبری بین مقاصد. این کنترلر روش هایی را برای پیمایش بین مقصدها، مدیریت پیوندهای عمیق، مدیریت پشته پشته و موارد دیگر ارائه می دهد.

NavController

مقصد

یک گره در نمودار ناوبری. هنگامی که کاربر به این گره هدایت می شود، میزبان محتوای آن را نمایش می دهد.

NavDestination

معمولاً هنگام ساخت نمودار ناوبری ایجاد می شود.

مسیر

به طور منحصر به فرد یک مقصد و هر داده مورد نیاز آن را شناسایی می کند.

می توانید با استفاده از مسیرها پیمایش کنید. مسیرها شما را به مقاصد می برند.

هر نوع داده قابل سریال سازی

مزایا و ویژگی ها

کامپوننت Navigation تعدادی مزایا و ویژگی های دیگر از جمله موارد زیر را ارائه می دهد:

  • انیمیشن ها و انتقال ها: منابع استاندارد شده ای را برای انیمیشن ها و انتقال ها فراهم می کند.
  • پیوند عمیق: پیوندهای عمیقی را پیاده سازی و مدیریت می کند که کاربر را مستقیماً به مقصدی می برد.
  • الگوهای رابط کاربری: از الگوهایی مانند کشوهای پیمایش و پیمایش پایین با حداقل کار اضافی پشتیبانی می کند.
  • ایمنی نوع: شامل پشتیبانی برای انتقال داده بین مقصدها با نوع ایمنی است .
  • پشتیبانی از ViewModel: محدوده یک ViewModel را به یک نمودار ناوبری برای به اشتراک گذاشتن داده های مربوط به رابط کاربری بین مقصدهای نمودار فعال می کند.
  • تراکنش های قطعه: به طور کامل از تراکنش های قطعه پشتیبانی می کند و مدیریت می کند.
  • پشتیبان گیری و بالا: به طور پیش فرض عملکردهای پشتیبان و بالا را به درستی مدیریت می کند.

محیط خود را تنظیم کنید

برای گنجاندن پشتیبانی ناوبری در پروژه خود، وابستگی های زیر را به فایل build.gradle برنامه خود اضافه کنید:

Groovy

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21'
}
  
dependencies {
  def nav_version = "2.8.5"

  // Jetpack Compose Integration
  implementation "androidx.navigation:navigation-compose:$nav_version"

  // Views/Fragments Integration
  implementation "androidx.navigation:navigation-fragment:$nav_version"
  implementation "androidx.navigation:navigation-ui:$nav_version"

  // Feature module support for Fragments
  implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

  // Testing Navigation
  androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

  // JSON serialization library, works with the Kotlin serialization plugin.
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3"
}

Kotlin

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  kotlin("plugin.serialization") version "2.0.21"
}

dependencies {
  val nav_version = "2.8.5"

  // Jetpack Compose integration
  implementation("androidx.navigation:navigation-compose:$nav_version")

  // Views/Fragments integration
  implementation("androidx.navigation:navigation-fragment:$nav_version")
  implementation("androidx.navigation:navigation-ui:$nav_version")

  // Feature module support for Fragments
  implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version")

  // Testing Navigation
  androidTestImplementation("androidx.navigation:navigation-testing:$nav_version")

  // JSON serialization library, works with the Kotlin serialization plugin
  implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
}

برای اطلاعات در مورد افزودن سایر اجزای معماری به پروژه خود، به افزودن اجزا به پروژه خود مراجعه کنید.

مراحل بعدی

برای اسناد و منابع بیشتر مربوط به مؤلفه ناوبری، به منابع زیر مراجعه کنید.

راهنماهای دقیق

برای اطلاعات بیشتر در مورد نحوه پیاده‌سازی یک میزبان ناوبری و NavController و همچنین جزئیات نحوه تعامل آنها با Compose و سایر چارچوب‌های UI، به راهنمای زیر مراجعه کنید:

Codelabs

ویدیوها

نمونه ها