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