الخطوط في Compose

الفتحة في الشاشة هي منطقة على بعض الأجهزة تمتد إلى سطح الشاشة. ويسمح هذا التصميم بتجربة ملء الشاشة مع توفير مساحة ل أجهزة الاستشعار المهمة في مقدمة الجهاز.

مثال على اقتصاص صورة في الوضع العمودي
الشكل 1. مثال على اقتصاص صورة في وضع "بورتريه"
مثال على اقتصاص صورة في الوضع الأفقي
الشكل 2. مثال على اقتصاص الصورة في الوضع الأفقي

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

توضِّح هذه الصفحة كيفية توفير إمكانية استخدام التطبيقات على الأجهزة التي تتضمّن مساحة مخصّصة للكاميرا الأمامية في Compose، بما في ذلك كيفية التعامل مع مساحة الفتحة، أي المستطيل الذي يمتد من الحافة إلى الحافة على سطح الشاشة ويحتوي على الفتحة.

الحالة التلقائية

لن ترسم التطبيقات التي تستهدِف المستوى 34 من واجهة برمجة التطبيقات أو الإصدارات الأقدم، أو الأنشطة التي لا تستدعي enableEdgeToEdge، في منطقة الفتحة تلقائيًا ما لم ترسم التطبيق في شريط نظام يحتوي على الفتحة في الشاشة.

ترسم التطبيقات التي تستهدف المستوى 35 أو أعلى لواجهة برمجة التطبيقات على الأجهزة التي تعمل بالإصدار 15 من Android أو الإصدارات الأحدث، أو الأنشطة التي تستدعي enableEdgeToEdge، في منطقة الفتحة.

بعبارة أخرى، يتم تفسير LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT و LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES و LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER على أنّها LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS للنوافذ غير العائمة في التطبيقات التي تستهدف المستوى 35 من واجهة برمجة التطبيقات أو إصدارًا أحدث على الأجهزة التي تعمل بالإصدار 15 من Android أو إصدارًا أحدث.

التعامل مع معلومات الاقتصاص يدويًا

يجب التعامل مع معلومات الفتحة لمنع حجب النص أو عناصر التحكّم أو العناصر التفاعلية المهمة التي تتطلّب دقة في التعرّف على اللمس (قد تكون حساسية اللمس أقل في منطقة الفتحة). عند التعامل مع العناصر المخصّصة للاقتصاص، لا تُعدّ ارتفاع شريط الحالة بشكل ثابت، لأنّ ذلك قد يؤدي إلى تداخل المحتوى أو اقتصاصه. بدلاً من ذلك، يمكنك التعامل مع العناصر المُقتطعة بأيّ من الطرق التالية:

بالنسبة إلى ميزة "الإنشاء"، ننصحك باستخدام displayCutout أو safeContent أو safeDrawing للتعامل مع العناصر المُدمَجة المُقتطعة في العناصر القابلة للإنشاء. يتيح لك هذا النهج مراعاة مساحة الحشو في فتحة الشاشة عند الحاجة، أو تجاهلها عندما لا يكون ذلك مطلوبًا.

Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) {
    drawRect(Color.Red, style = Stroke(2.dp.toPx()))
}

اختبار كيفية عرض المحتوى باستخدام العناصر المخصّصة

احرص على اختبار جميع شاشات تطبيقك وتجاربه. يُرجى إجراء الاختبار على الأجهزة التي تتضمّن أنواعًا مختلفة من الفتحات، إن أمكن. إذا لم يكن لديك جهاز يحتوي على فتحة، يمكنك محاكاة إعدادات الفتحات الشائعة على أي جهاز أو محاكي يعمل بنظام التشغيل Android 9 أو إصدار أحدث باتّباع الخطوات التالية:

  1. فعِّل خيارات المطوّرين.
  2. في شاشة خيارات المطوّرين، انتقِل للأسفل إلى قسم الرسم واختَر محاكاة شاشة تتضمّن مساحة مقطوعة.
  3. اختَر نوع الصورة المُقتطعة.
    محاكاة صورة مقطوعة للشاشة في المحاكي
    الشكل 3: استخدِم خيارات المطوّرين لاختبار طريقة عرض المحتوى.