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