الفتحة في الشاشة هي منطقة على بعض الأجهزة تمتد إلى سطح الشاشة. ويسمح هذا التصميم بتجربة ملء الشاشة مع توفير مساحة ل أجهزة الاستشعار المهمة في مقدمة الجهاز.
يتيح نظام التشغيل 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 أو
إصدارًا أحدث.
التعامل مع معلومات الاقتصاص يدويًا
يجب التعامل مع معلومات الفتحة لمنع حجب النص أو عناصر التحكّم أو العناصر التفاعلية المهمة التي تتطلّب دقة في التعرّف على اللمس (قد تكون حساسية اللمس أقل في منطقة الفتحة). عند التعامل مع العناصر المخصّصة للاقتصاص، لا تُعدّ ارتفاع شريط الحالة بشكل ثابت، لأنّ ذلك قد يؤدي إلى تداخل المحتوى أو اقتصاصه. بدلاً من ذلك، يمكنك التعامل مع العناصر المُقتطعة بأيّ من الطرق التالية:
باستخدام
WindowInsets.displayCutout
أوWindowInsets.safeContent
أوWindowInsets.safeDrawing
الوصول إلى عنصر الفتحة
Path
باستخدامLocalView.current.rootWindowInsets.displayCutout
بالنسبة إلى ميزة "الإنشاء"، ننصحك باستخدام displayCutout
أو safeContent
أو
safeDrawing
للتعامل مع العناصر المُدمَجة المُقتطعة في العناصر القابلة للإنشاء. يتيح لك هذا النهج مراعاة مساحة الحشو في فتحة الشاشة عند الحاجة، أو تجاهلها عندما لا يكون ذلك مطلوبًا.
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
اختبار كيفية عرض المحتوى باستخدام العناصر المخصّصة
احرص على اختبار جميع شاشات تطبيقك وتجاربه. يُرجى إجراء الاختبار على الأجهزة التي تتضمّن أنواعًا مختلفة من الفتحات، إن أمكن. إذا لم يكن لديك جهاز يحتوي على فتحة، يمكنك محاكاة إعدادات الفتحات الشائعة على أي جهاز أو محاكي يعمل بنظام التشغيل Android 9 أو إصدار أحدث باتّباع الخطوات التالية:
- فعِّل خيارات المطوّرين.
- في شاشة خيارات المطوّرين، انتقِل للأسفل إلى قسم الرسم واختَر محاكاة شاشة تتضمّن مساحة مقطوعة.
- اختَر نوع الصورة المُقتطعة.
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون لغة JavaScript غير مفعّلة.
- أجزاء النافذة المضمّنة في ميزة "الإنشاء"
- مُعدِّلات الرسومات
- نمط الفقرة