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