ناوبری به تعاملاتی اشاره دارد که به کاربران اجازه می دهد در قسمت های مختلف محتوای برنامه شما حرکت کنند، به داخل و از آن خارج شوند.
مؤلفه ناوبری Android Jetpack شامل کتابخانه ناوبری ، افزونه Safe Args Gradle و ابزارهایی است که به شما در اجرای ناوبری برنامه کمک می کند. مؤلفه Navigation موارد استفاده متنوع از ناوبری، از کلیک ساده روی دکمه تا الگوهای پیچیده تر، مانند نوار برنامه و کشوی ناوبری را کنترل می کند.
مفاهیم کلیدی
جدول زیر یک نمای کلی از مفاهیم کلیدی در مسیریابی و انواع اصلی که برای اجرای آنها استفاده می کنید ارائه می دهد.
مفهوم | هدف | تایپ کنید |
---|---|---|
میزبان | یک عنصر رابط کاربری که حاوی مقصد پیمایش فعلی است. به این معنی که وقتی کاربر از طریق یک برنامه پیمایش می کند، برنامه اساساً مقصد را در داخل و خارج میزبان ناوبری تعویض می کند. |
|
نمودار | ساختار داده ای که تمام مقاصد ناوبری را در برنامه و نحوه اتصال آنها با یکدیگر تعریف می کند. | |
کنترل کننده | هماهنگ کننده مرکزی برای مدیریت ناوبری بین مقاصد. این کنترلر روش هایی را برای پیمایش بین مقصدها، مدیریت پیوندهای عمیق، مدیریت پشته پشته و موارد دیگر ارائه می دهد. | |
مقصد | یک گره در نمودار ناوبری. هنگامی که کاربر به این گره هدایت می شود، میزبان محتوای آن را نمایش می دهد. | معمولاً هنگام ساخت نمودار ناوبری ایجاد می شود. |
مسیر | به طور منحصر به فرد یک مقصد و هر داده مورد نیاز آن را شناسایی می کند. می توانید با استفاده از مسیرها پیمایش کنید. مسیرها شما را به مقاصد می برند. | هر نوع داده قابل سریال سازی |
مزایا و ویژگی ها
کامپوننت 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، به راهنمای زیر مراجعه کنید:
- ایجاد یک کنترل کننده ناوبری : نحوه ایجاد یک
NavController
را تشریح می کند. - نمودار ناوبری خود را ایجاد کنید : نحوه ایجاد یک میزبان ناوبری و یک نمودار ناوبری را شرح می دهد.
- پیمایش به مقصد : نحوه استفاده از
NavController
را برای جابجایی بین مقاصد در نمودار خود نشان می دهد.
Codelabs
ویدیوها
- ناوبری ناوبری
- 10 بهترین روش برای حرکت به یک فعالیت واحد
- تک فعالیت: چرا، کی و چگونه (Android Dev Summit '18)
- Android Jetpack: ناوبری رابط کاربری را با کنترلر ناوبری مدیریت کنید (Google I/O '18)