بدءًا من الإصدار 10 من Android (المستوى 29 لواجهة برمجة التطبيقات)، يتيح نظام Android التنقّل بالاستناد بالكامل إلى الإيماءات. هناك أمران يجب أن ينفّذهما مطوّرو التطبيقات لضمان توافق تطبيقاتهم مع هذه الميزة:
- امتداد محتوى التطبيق من الحافة إلى الحافة
- التعامل مع إيماءات التطبيقات المتعارضة
بالإضافة إلى ذلك، يقدّم Android 13 (المستوى 33 لواجهة برمجة التطبيقات) إيماءة تنبؤية للرجوع على أجهزة Android مثل الهواتف والشاشات الكبيرة والأجهزة القابلة للطي، وهي جزء من إصدار لعدة سنوات. يمكن لمطوّري التطبيقات اتّخاذ خطوات لضمان توافق تطبيقاتهم مع إيماءة الرجوع التوقّعية.
تقديم محتوى تطبيق شامل
للاستفادة من مساحة الشاشة الإضافية التي يوفّرها شريط التنقّل العائم، عليك ضبط تغييرات معيّنة في تطبيقك.
يمكنك الاطّلاع على عرض المحتوى من الحافة إلى الحافة في تطبيقك للحصول على التفاصيل.
التعامل مع إيماءات التطبيقات المتعارضة
قد يتعارض نموذج التنقّل بالإيماءات مع الإيماءات التي سبق أن استخدمها مطوّرو التطبيقات. قد تحتاج إلى إجراء تعديلات على واجهة مستخدم تطبيقك نتيجة لذلك.
تعارض مع إيماءات الرجوع
إيماءة النظام الجديدة للرجوع هي التمرير سريعًا للداخل من الحافة اليسرى أو
اليمنى للشاشة. وقد يتداخل ذلك مع عناصر التنقّل في التطبيق في
هذه المناطق. للحفاظ على وظيفة العناصر على الحافتَين اليمنى واليسرى
للشاشة، يمكنك إيقاف إيماءة الرجوع بشكل انتقائي من خلال الإشارة إلى
النظام بالمناطق التي يجب أن تتلقّى إشارات اللمس. ويمكنك إجراء ذلك من خلال تمرير ملف
List<Rect>
إلى واجهة برمجة التطبيقات View.setSystemGestureExclusionRects()
التي تم طرحها في Android 10. تتوفّر هذه الطريقة أيضًا في ViewCompat
اعتبارًا من
androidx.core:core:1.1.0-dev01
.
مثلاً:
Kotlin
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) }
Java
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()
التي تُعلم التطبيقات بحدود التعرّف على اللمس.
الألعاب والتطبيقات الأخرى التي لا تستخدم علامة التبويب "مشاهدة"
غالبًا ما تتطلّب الألعاب والتطبيقات الأخرى التي لا تتضمّن تسلسلًا هرميًا للعرض من المستخدم التمرير سريعًا بالقرب من مناطق إيماءات النظام. في هذه الحالات، يمكن للألعاب استخدام
Window.setSystemGestureExclusionRects()
لاستبعاد المناطق التي تتداخل مع المناطق المحجوزة لإيماءات النظام. يجب أن تضمن الألعاب عدم استبعاد هذه المناطق إلا عند الضرورة، مثلاً أثناء
اللعب.
إذا كانت اللعبة تتطلب من المستخدم التمرير سريعًا بالقرب من منطقة إيماءة الشاشة الرئيسية، يمكن للتطبيق طلب أن يعمل في الوضع المجسم. يؤدي ذلك إلى إيقاف إيماءات النظام أثناء تفاعل المستخدم مع اللعبة، ولكن يسمح للمستخدم بإعادة تفعيل إيماءات النظام من خلال التمرير سريعًا من أسفل الشاشة.
تحديث تطبيقك لإتاحة إيماءة الرجوع التنبؤية
يقدّم الإصدار Android 13 (المستوى 33 من واجهة برمجة التطبيقات) إيماءة توقُّعية للخلف لأجهزة Android، مثل الهواتف والشاشات الكبيرة والأجهزة القابلة للطي. إنّ لفتة التراجع العميق المتعلّقة بالسياق هي جزء من إصدار يتم طرحه على مدار عدة سنوات. عند تنفيذ هذه الميزة بالكامل، تسمح للمستخدمين بمعاينة الوجهة أو النتيجة الأخرى لإيماءة الرجوع قبل إكمالها بالكامل، ما يتيح لهم تحديد ما إذا كانوا يريدون المتابعة أو البقاء في طريقة العرض الحالية.
راجِع مقالة إتاحة ميزة الإيماءة التوقّعية للرجوع للحصول على التفاصيل.
مصادر إضافية
لمزيد من المعلومات عن التنقّل باستخدام الإيماءات، يُرجى الاطّلاع على ما يلي: