پیمایش به تعاملاتی اشاره دارد که به کاربران اجازه میدهد در بخشهای مختلف محتوا در برنامه شما پیمایش کنند، وارد آنها شوند، و از آنها خارج شوند.
مؤلفه «پیمایش» Android Jetpack شامل کتابخانه پیمایش، افزونه Safe Args Gradle، و ابزارهایی برای کمک به شما در پیادهسازی پیمایش برنامه است. مؤلفه «پیمایش» موارد استفاده متنوع پیمایش را مدیریت میکند، از کلیکهای ساده روی دکمهها تا الگوهای پیچیدهتر، مانند نوارهای برنامه و کشوی پیمایش.
مفاهیم اصلی
جدول زیر نمای کلی مفاهیم کلیدی در پیمایش و انواع اصلی را که برای پیادهسازی آنها استفاده میکنید ارائه میدهد.
مفهوم |
هدف |
نوع |
|---|---|---|
میزبان |
عنصر میانای کاربر که مقصد پیمایش فعلی را دربرمیگیرد. یعنی وقتی کاربر در برنامه پیمایش میکند، برنامه اساساً مقصدها را در میزبان پیمایش جابهجا میکند. |
|
نمودار |
ساختار دادهای که همه مقصدهای ناوبری را در برنامه و نحوه اتصال آنها به یکدیگر تعریف میکند. |
|
کنترلکننده |
هماهنگکننده مرکزی برای مدیریت پیمایش بین مقصدها. این کنترلکننده روشهایی برای پیمایش بین مقصدها، مدیریت پیوندهای عمیق، مدیریت پشته قبلیها، و غیره ارائه میدهد. |
|
مقصد |
گرهی در گراف پیمایش. وقتی کاربر به این گره پیمایش میکند، میزبان محتوای آن را نمایش میدهد. |
معمولاً هنگام ساختن نمودار پیمایش ایجاد میشود. |
مسیر |
مقصد و هرگونه داده موردنیاز آن را بهطور منحصربهفرد شناسایی میکند. میتوانید بااستفاده از مسیرها پیمایش کنید. مسیرها شما را به مقصد میرسانند. |
هر نوع داده قابلسریالسازی. |
مزایا و ویژگیها
مؤلفه «ناوبری» مزایا و ویژگیهای متعدد دیگری ارائه میدهد، ازجمله موارد زیر:
- پویانماییها و انتقالها: منابع استانداردی برای پویانماییها و انتقالها ارائه میدهد.
- پیونددهی عمیق: پیوندهای عمیقی را که کاربر را مستقیماً به مقصد میبرد پیادهسازی و مدیریت میکند.
- الگوهای واسط کاربر: از الگوهایی مانند کشوهای پیمایش و پیمایش پایین با حداقل کار اضافی پشتیبانی میکند.
- ایمنی تایپی: شامل پشتیبانی از انتقال داده بین مقصدها با ایمنی تایپی است.
- پشتیبانی ViewModel: امکان محدود کردن
ViewModelبه نمودار پیمایش را فراهم میکند تا دادههای مربوط به میانای کاربر بین مقصدهای نمودار همرسانی شود. - تراکنشهای قطعه: تراکنشهای قطعه را کاملاً پشتیبانی و مدیریت میکند.
- برگشتن و بالا رفتن: کنشهای برگشتن و بالا رفتن را بهطور پیشفرض بهدرستی اداره میکند.
گزینههای چارچوب
مؤلفه «ناوبری» از دو چارچوب اصلی برای پیادهسازی نمودار ناوبری شما پشتیبانی میکند که به معماری واسط کاربر برنامهتان بستگی دارد:
- Compose: اگر برنامهتان کاملاً با Jetpack Compose ساخته شده است، از Navigation Compose استفاده کنید. مقصدها در نمودار شما قابلترکیب هستند.
- بخشها: اگر برنامهتان از «نماها» یا ترکیبی از «نماها» و Compose استفاده میکند، از مؤلفه «پیمایش» مبتنی بر «بخش» استفاده کنید. مقصدها در نمودار شما تکههایی هستند که میتوانند میزبان «نماهای» استاندارد، محتوای Compose، یا ترکیبی از هر دو باشند.
برای برنامههایی که از Views به Compose منتقل میشوند، استراتژی توصیهشده این است که همچنان از مؤلفه Fragment-based Navigation استفاده شود و درعینحال صفحههای جداگانه به Compose تبدیل شوند. وقتی همه قطعهها با composable جایگزین شدند، میتوانید نمودار پیمایش را به Navigation Compose منتقل کنید.
راهاندازی محیط
برای گنجاندن پشتیبانی ناوبری در پروژهتان، وابستگیهای زیر را به فایل build.gradle برنامهتان اضافه کنید:
گرووی
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.10.2" // 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" }
کاتلین
plugins { // Kotlin serialization plugin for type safe routes and navigation arguments kotlin("plugin.serialization") version "2.0.21" } dependencies { val nav_version = "2.10.2" // 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 و چارچوبهای دیگر واسط کاربر،
راهنماهای زیر را ببینید:
- ایجاد کنترلکننده پیمایش: نحوه ایجاد
NavControllerرا شرح میدهد. - ایجاد نمودار پیمایش: جزئیات نحوه ایجاد میزبان پیمایش و نمودار پیمایش.
- پیمایش به مقصد: نشان میدهد که چگونه از
NavControllerبرای جابهجایی بین مقصدهای نمودار استفاده کنید.
Codelabs
- یادگیری Jetpack Navigation
- Fragments and the Navigation Component
- ساختن برنامه تطبیقی با ناوبری پویا
ویدیوها
- پیمایش ناوبری
- ۱۰ روال مطلوب برای انتقال به یک فعالیت
- فعالیت تکی: چرا، چه زمانی، و چگونه (نشست توسعهدهندگان Android ۲۰۱۸)
- Android Jetpack: Manage UI navigation with navigation controller (Google I/O '18)