از اندروید ۱۰ (سطح API ۲۹)، سیستم اندروید از ناوبری کاملاً مبتنی بر ژستهای حرکتی پشتیبانی میکند. توسعهدهندگان برنامه برای اطمینان از سازگاری برنامههایشان با این ویژگی، باید دو کار انجام دهند:
- محتوای برنامه را از یک لبه به لبه دیگر گسترش دهید.
- حرکات متناقض برنامه را مدیریت کنید.
علاوه بر این، اندروید ۱۳ (سطح API ۳۳) یک ژست حرکتی پیشبینیکننده برای بازگشت به عقب را برای دستگاههای اندرویدی مانند تلفنها، صفحه نمایشهای بزرگ و دستگاههای تاشو معرفی میکند که بخشی از یک نسخه چند ساله است. توسعهدهندگان برنامه میتوانند اقداماتی را انجام دهند تا اطمینان حاصل شود که برنامههایشان از ژست حرکتی پیشبینیکننده برای بازگشت به عقب پشتیبانی میکنند.
ارائه محتوای اپلیکیشن بینقص
برای استفاده از فضای صفحه نمایش اضافی که توسط نوار ناوبری شناور در دسترس قرار میگیرد، باید تغییرات خاصی را در برنامه خود پیکربندی کنید.
برای جزئیات بیشتر به بخش نمایش محتوا از لبه به لبه در برنامه خود مراجعه کنید.
حرکات متناقض برنامه را مدیریت کنید
مدل ناوبری اشارهای ممکن است با اشارههایی که قبلاً توسط توسعهدهندگان برنامه استفاده میشد، تداخل داشته باشد. در نتیجه، ممکن است لازم باشد تنظیماتی را در رابط کاربری برنامه خود انجام دهید.
درگیری با حرکات پشت
ژست جدید سیستم برای بازگشت، کشیدن انگشت به سمت داخل از لبه چپ یا راست صفحه است. این ممکن است با عناصر ناوبری برنامه در آن قسمتها تداخل داشته باشد. برای حفظ عملکرد عناصر در لبههای چپ و راست صفحه، با مشخص کردن اینکه کدام قسمتها باید ورودی لمسی دریافت کنند، به طور انتخابی از ژست بازگشت صرف نظر کنید. میتوانید این کار را با ارسال یک List<Rect> به API View.setSystemGestureExclusionRects() که در اندروید ۱۰ معرفی شده است، انجام دهید. این روش در ViewCompat از androidx.core:core:1.1.0-dev01 نیز موجود است.
برای مثال:
کاتلین
var exclusionRects = listOf(rect1, rect2, rect3) fun onLayout( changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) } fun onDraw(canvas: Canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) }
جاوا
List<Rect> exclusionRects; public void onLayout( boolean changedCanvas, int left, int top, int right, int bottom) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); } public void onDraw(Canvas canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); }
تداخل با حرکات خانه یا سوئیچ سریع
حرکات جدید سیستم برای خانه و سوئیچ سریع، هر دو شامل کشیدن انگشت در پایین صفحه در فضایی هستند که قبلاً توسط نوار ناوبری اشغال شده بود. برنامهها نمیتوانند از این حرکات مانند حرکت برگشت، انصراف دهند.
برای کاهش این مشکل، اندروید ۱۰ رابط برنامهنویسی کاربردی (API WindowInsets.getMandatorySystemGestureInsets() را معرفی میکند که آستانههای تشخیص لمس را به برنامهها اطلاع میدهد.
بازیها و سایر برنامههای غیر View
بازیها و سایر برنامههایی که سلسله مراتب نمایش ندارند، اغلب از کاربر میخواهند که در نزدیکی نواحی مربوط به حرکات سیستم، انگشت خود را بکشد. در این موارد، بازیها میتوانند از Window.setSystemGestureExclusionRects() برای حذف نواحی که با نواحی رزرو شده برای حرکات سیستم همپوشانی دارند، استفاده کنند. بازیها باید مطمئن شوند که فقط در صورت لزوم، مانند هنگام گیمپلی، این نواحی را حذف میکنند.
اگر یک بازی نیاز داشته باشد که کاربر نزدیک ناحیه اشارهگر صفحه اصلی سوایپ کند، برنامه میتواند درخواست کند که در حالت فراگیر (immersive mode) قرار گیرد. این حالت، حرکات سیستم را در حین تعامل کاربر با بازی غیرفعال میکند، اما به کاربر اجازه میدهد تا با سوایپ از پایین صفحه، حرکات سیستم را دوباره فعال کند.
برنامه خود را برای پشتیبانی از حرکت پیشبینیکنندهی بازگشت بهروزرسانی کنید
اندروید ۱۳ (سطح API ۳۳) یک ژست حرکتی پیشبینیکنندهی بازگشت به عقب را برای دستگاههای اندرویدی مانند تلفنها، صفحه نمایشهای بزرگ و دستگاههای تاشو معرفی میکند. ژست حرکتی پیشبینیکنندهی بازگشت به عقب بخشی از یک نسخه چندساله است. در صورت پیادهسازی کامل، این ویژگی به کاربران امکان میدهد قبل از تکمیل کامل یک ژست حرکتی، پیشنمایشی از مقصد یا نتیجهی دیگر آن را مشاهده کنند و تصمیم بگیرند که آیا در نمای فعلی ادامه دهند یا بمانند.
برای جزئیات بیشتر، به افزودن پشتیبانی برای حرکت پیشبینیکنندهی بازگشت مراجعه کنید.
منابع اضافی
برای کسب اطلاعات بیشتر در مورد پیمایش با اشاره، به موارد زیر مراجعه کنید: