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