«رویداد پیمایش» کتابخانهای است که راهحل «چندپلاتفرمی Kotlin» (KMP) برای ادغام رویدادهای پیمایش سطح سیستم در برنامهتان ارائه میدهد. این لایه بهعنوان لایه زیربنایی برای مدیریت دستورالعملهای پیمایش در پلاتفرمهای پشتیبانیشده مختلف طراحی شده است.
مفاهیم اصلی
سیستم «رویداد پیمایش» براساس مدل توزیعکننده-مدیر متمرکز ساخته شده است که اغلب در سلسلهمراتب والد-فرزند برای نگاشت به ساختارهای پیچیده میانای کاربری، مانند ساختارهای موجود در Jetpack Compose، استفاده میشود.
NavigationEventDispatcher
NavigationEventDispatcher کلاس مرکزی مسئول مدیریت همه مصرفکنندگان رویداد پیمایش ثبتشده
(NavigationEventHandler) و هماهنگسازی جریان رویدادها است.
در تنظیمات سلسلهمراتبی، همه توزیعکنندگان در یک زنجیره، NavigationEventProcessor واحدی را همرسانی میکنند که وضعیت جهانی را مدیریت میکند و ترتیب توزیع یکپارچه و واحدی را در سراسر درخت تضمین میکند.
NavigationEventHandler
NavigationEventHandler یک کلاس انتزاعی است که رویدادهای پیمایش ارسالی از NavigationEventDispatcher را دریافت و مدیریت میکند. این کلاس روشهای
بازخوانی را تعریف میکند که با مراحل مختلف چرخه حیات اشاره پیمایش مطابقت دارند،
مثلاً زمانی که اشارهای شروع میشود، پیشرفت میکند، تکمیل میشود، یا
لغو میشود.
کنترلکنندهها میتوانند به این رویدادها پاسخ دهند تا وضعیت برنامه یا میانای کاربر را در پاسخ به کنشهای پیمایش کاربر بهروز کنند. چندین پردازنده را میتوان در توزیعکننده ثبت کرد و براساس اولویت و ترتیب ثبت فراخوانی میشوند.
NavigationEvent
NavigationEvent یک کلاس داده است که جزئیات
اشاره پیمایش را حمل میکند.
NavigationEventInfo
NavigationEventInfo یک کلاس انتزاعی است که اطلاعات زمینهای درباره وضعیت ناوبری ارائه میدهد.
NavigationEventInput
NavigationEventInput یک کلاس انتزاعی برای عناصری است که رویدادهای پیمایش را تولید و توزیع میکنند. این ویژگی بهعنوان طرف «ورودی» سیستم پیمایش عمل میکند و رویدادهای مختص پلاتفرم (مثل اشارههای برگشت سیستم یا کلیکهای دکمه) را به رویدادهای استانداردشدهای که میتوانند به NavigationEventDispatcher ارسال شوند ترجمه میکند.
مسیرهای پیمایش و راهاندازهای پشتیبانیشده
سیستم «رویداد پیمایش» بهگونهای طراحی شده است که فراتر از دکمه بازگشت سیستم باشد و طراحیهای آن از چندین جهت پیمایش و روش ورودی در پلاتفرمهای مختلف پشتیبانی کند.
مسیرهای پشتیبانیشده
پلاتفرمهای مختلف از دستورالعملهای پیمایش متفاوتی پشتیبانی میکنند:
پلاتفرم |
برگشت |
بالا |
بازارسال |
صفحه اصلی |
تلفن Android |
✅ |
✅ |
🚫 |
✅ |
رایانه لوحی Android |
✅ |
✅ |
🚫 |
✅ |
وب (مرورگر) |
✅ |
✅ |
✅ |
🚫 |
iOS (iPhone/iPad) |
✅ |
🚫 |
✅ |
✅ |
راهاندازهای پشتیبانیشده
مدیریت ورودی ازطریق سازوکارهای مختلف در هر پلاتفرم انجام میشود:
راهانداز |
تلفن Android |
وب (مرورگر) |
iOS (iPhone/iPad) |
دکمه برگشتن صفحهکلید |
✅ برگشتن |
❓ |
✅ برگشتن |
دکمه برگشتن نرمافزار |
🚫 |
✅ برگشتن |
✅ برگشتن |
دکمه نرمافزاری بالا |
✅ بالا |
🚫 |
🚫 |
اشاره از چپ |
✅ برگشتن |
❓ |
✅ برگشتن |
اشاره از راست |
✅ برگشتن |
❓ |
✅ بازارسال |
اشاره از پایین |
✅ خانه |
🚫 |
✅ خانه |