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

بدءًا من 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() التي ستُعلِم التطبيقات بحدود التعرّف على اللمس.

الألعاب والتطبيقات الأخرى التي لا تتبع العرض

غالبًا ما تتطلب الألعاب والتطبيقات الأخرى التي لا تحتوي على تسلسل هرمي لطريقة العرض من المستخدم التمرير بسرعة بالقرب من مناطق الإيماءات في النظام. في هذه الحالات، يمكن للألعاب استخدام Window.setSystemGestureExclusionRects() لاستبعاد المناطق التي تتداخل مع المناطق المحجوزة لإيماءات النظام. يجب أن تحرص الألعاب على استبعاد هذه الأجزاء عند الضرورة فقط، مثلاً أثناء اللعب.

إذا كانت اللعبة تتطلب من المستخدم التمرير سريعًا بالقرب من منطقة الإيماءات في الشاشة الرئيسية، يمكن للتطبيق طلب التنسيق في الوضع المجسم. يؤدي ذلك إلى إيقاف إيماءات النظام أثناء تفاعل المستخدم مع اللعبة، ولكنه يتيح للمستخدم إعادة تفعيل إيماءات النظام من خلال التمرير سريعًا من أسفل الشاشة.

يجب تحديث التطبيق لإتاحة إيماءة الرجوع إلى شاشة الرجوع.

يقدّم Android 13 (المستوى 33 من واجهة برمجة التطبيقات) إيماءة توقُّعية للظهر في أجهزة Android، مثل الهواتف والشاشات الكبيرة والأجهزة القابلة للطي. إيماءة الرجوع التنبؤي هي جزء من إصدار متعدد السنوات. وعند تنفيذها بالكامل، تتيح هذه الميزة للمستخدمين معاينة الوجهة أو نتيجة أخرى لإيماءة الرجوع إلى الخلف قبل إكمالها بالكامل، ما يسمح لهم بتحديد ما إذا كانوا يريدون المتابعة أو البقاء في العرض الحالي.

للحصول على التفاصيل، يمكنك الاطّلاع على إتاحة إيماءة الرجوع إلى الخلف.

مراجع إضافية

لمزيد من المعلومات حول التنقل بالإيماءات، يُرجى الاطّلاع على ما يلي:

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

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