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


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