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