ضمان التوافق مع التنقُّل بالإيماءات

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

يمكنك الاطّلاع على مقالة إضافة إمكانية استخدام إيماءة الرجوع التنبؤية للحصول على التفاصيل.

مصادر إضافية

لمعرفة المزيد من المعلومات حول التنقل بالإيماءات، راجع ما يلي:

مشاركات المدونة

الفيديوهات الطويلة