Navigation 3 یک کتابخانه ناوبری جدید است که برای کار با Compose طراحی شده است. با Navigation 3، کنترل کاملی بر پشته پشتی خود دارید، و پیمایش به مقصد و از مقصد به سادگی افزودن و حذف موارد از یک لیست است. این یک سیستم ناوبری برنامه انعطاف پذیر با ارائه موارد زیر ایجاد می کند:
- قراردادهای مدل سازی پشته پشته، که در آن هر ورودی در پشته پشته محتوایی را نشان می دهد که کاربر به آن پیمایش کرده است.
- رابط کاربری که به طور خودکار با تغییرات پشته (از جمله انیمیشن ها) به روز می شود
- محدوده ای برای آیتم ها در پشته پشتی، که اجازه می دهد تا زمانی که یک آیتم در پشته است، حالت حفظ شود
- یک سیستم چیدمان تطبیقی که امکان نمایش همزمان چندین مقصد را فراهم میکند و امکان جابهجایی یکپارچه بین آن طرحبندیها را فراهم میکند.
- مکانیزمی برای ارتباط محتوا با چیدمان والد (فراداده)
در سطح بالا، Navigation 3 را به روش های زیر پیاده سازی می کنید:
- محتوایی را تعریف کنید که کاربران می توانند در برنامه شما به سمت آن حرکت کنند، هر کدام با یک کلید منحصر به فرد، و یک تابع برای حل آن کلید به محتوا اضافه کنید. به حل کلیدهای محتوا مراجعه کنید.
- یک پشته پشتی ایجاد کنید که کلیدها روی آن فشار داده شده و در حین حرکت کاربران در برنامه شما حذف شوند. به ایجاد پشته پشتی مراجعه کنید.
- از
NavDisplay
برای نمایش پشته برنامه خود استفاده کنید. هر زمان که پشته پشتی تغییر می کند، رابط کاربری را برای نمایش محتوای مرتبط به روز می کند. به نمایش پشته پشته مراجعه کنید. - استراتژیهای صحنه
NavDisplay
را در صورت نیاز برای پشتیبانی از طرحبندیهای تطبیقی و پلتفرمهای مختلف تغییر دهید.
می توانید کد منبع کامل Navigation 3 را در AOSP مشاهده کنید.
بهبود در ناوبری Jetpack
Navigation 3 API اصلی Jetpack Navigation را به روشهای زیر بهبود میبخشد:
- ادغام ساده تری با Compose ارائه می دهد
- کنترل کامل پشته را به شما ارائه می دهد
- ایجاد طرحبندیهایی را ممکن میسازد که میتوانند همزمان بیش از یک مقصد را از پشته بخوانند و به آنها اجازه میدهد تا با تغییرات اندازه پنجره و سایر ورودیها سازگار شوند.
در این پست وبلاگ درباره اصول Navigation 3 و انتخاب های طراحی API بیشتر بخوانید.
نمونه کد
مخزن دستور العمل ها شامل نمونه هایی از نحوه استفاده از بلوک های سازنده Navigation 3 برای حل چالش های رایج ناوبری است.