از Android نسخه ۱۰ (سطح API ۲۹)، سیستم Android بهطور کامل از پیمایش مبتنی بر اشاره پشتیبانی میکند. توسعهدهندگان نرمافزار باید دو کار انجام دهند تا مطمئن شوند برنامههایشان با این ویژگی سازگار است:
- محتوای برنامه را از لبهای به لبه دیگر گسترش دهید.
- اشارههای متناقض برنامه را مدیریت کنید.
علاوهبراین، Android 13 (سطح میانای برنامهسازی کاربردی ۳۳) اشاره برگشت پیشگویانه را برای دستگاههای Android مثل تلفنها، صفحهنمایشهای بزرگ، و دستگاههای تاشو معرفی میکند که بخشی از یک انتشار چندساله است. توسعهدهندگان برنامه میتوانند اقداماتی انجام دهند تا مطمئن شوند برنامههایشان از اشاره برگشت پیشگویانه پشتیبانی میکند.
ارائه محتوای برنامه لبهبهلبه
برای بهرهبرداری از فضای اضافی صفحهنمایش که توسط نوار پیمایش شناور فراهم شده است، باید تغییرات خاصی را در برنامهتان پیکربندی کنید.
برای جزئیات بیشتر، به نمایش محتوا بهصورت لببهلب در برنامه مراجعه کنید.
مدیریت اشارههای متناقض برنامه
مدل پیمایش اشارهای ممکن است با اشارههایی که قبلاً توسط توسعهدهندگان نرمافزار استفاده میشد تداخل داشته باشد. درنتیجه ممکن است لازم باشد تغییراتی در میانای کاربر برنامهتان ایجاد کنید.
تداخل با اشارههای برگشتن
اشاره جدید سیستم برای برگشتن، تند کشیدن بهسمت داخل از لبه چپ یا راست صفحهنمایش است. این امر ممکن است با عناصر پیمایش برنامه در آن نواحی تداخل داشته باشد. برای حفظ عملکرد عناصر در لبههای چپ و راست
صفحه، با نشان دادن مناطقی که باید ورودی لمسی دریافت کنند به سیستم،
بهطور انتخابی از اشاره برگشت انصراف دهید. میتوانید این کار را با ارسال
List<Rect> به View.setSystemGestureExclusionRects()
میانای برنامهسازی کاربردی معرفیشده در Android 10 انجام دهید. این روش از تاریخ androidx.core:core:1.1.0-dev01 در ViewCompat نیز دردسترس است.
برای مثال:
کاتلین
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); }
تداخل با اشارههای صفحه اصلی یا تعویض سریع
اشارههای جدید سیستم برای صفحه اصلی و جابهجایی سریع هر دو شامل تند کشیدن در پایین صفحهنمایش در فضایی است که قبلاً توسط نوار پیمایش اشغال شده بود. برنامهها نمیتوانند از این اشارهها انصراف دهند، درحالیکه میتوانند از اشاره برگشت انصراف دهند.
برای کاهش این مشکل، Android 10
WindowInsets.getMandatorySystemGestureInsets()
API را معرفی میکند که آستانههای تشخیص لمس را به برنامهها اطلاع میدهد.
بازیها و سایر برنامههای غیرView
بازیها و برنامههای دیگری که سلسلهمراتب نمای ندارند اغلب از کاربر میخواهند
در نزدیکی نواحی اشاره سیستم تند بکشد. در این موارد، بازیها میتوانند از
Window.setSystemGestureExclusionRects()
استفاده کنند تا مناطقی را که با مناطق رزروشده برای اشارههای سیستم همپوشانی دارند مستثنی کنند. بازیها
باید مطمئن شوند که فقط درصورت لزوم، مثلاً درطول
بازی، این نواحی را مستثنی کنند.
اگر بازیای از کاربر بخواهد که در نزدیکی ناحیه اشاره صفحه اصلی تند بکشد، برنامه میتواند درخواست کند که در حالت فراگیر چیده شود. این کار اشارههای سیستم را درحین تعامل کاربر با بازی غیرفعال میکند، اما به کاربر اجازه میدهد با تند کشیدن از پایین صفحه، اشارههای سیستم را دوباره فعال کند.
برنامهتان را بهروزرسانی کنید تا از اشاره برگشت پیشگویانه پشتیبانی کند
Android 13 (سطح میانای برنامهسازی کاربردی ۳۳) اشاره برگشت پیشگویانه را برای دستگاههای Android مثل تلفنها، صفحهنمایشهای بزرگ، و دستگاههای تاشو معرفی میکند. اشاره برگشت پیشگویانه بخشی از یک انتشار چندساله است. وقتی این ویژگی بهطور کامل پیادهسازی شود، به کاربران امکان میدهد مقصد یا نتیجه دیگر اشاره برگشت را قبلاز تکمیل کامل آن پیشنمایش کنند، و به آنها اجازه میدهد تصمیم بگیرند که ادامه دهند یا در نمای فعلی بمانند.
برای جزئیات بیشتر، افزودن پشتیبانی از اشاره برگشت پیشگویانه را ببینید.
منابع بیشتر
برای آشنایی بیشتر با پیمایش اشارهای، موارد زیر را ببینید: