تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
فتحة الشاشة هي مساحة على بعض الأجهزة تمتد إلى داخل سطح الشاشة. ويتيح ذلك تجربة من الحافة إلى الحافة مع توفير مساحة لأجهزة الاستشعار المهمة في مقدّمة الجهاز.
الشكل 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 أو الإصدارات الأحدث.
التعامل مع معلومات القطع يدويًا
يجب التعامل مع معلومات القطع لتجنُّب حجب منطقة القطع للنصوص أو عناصر التحكّم أو العناصر التفاعلية المهمة التي تتطلّب التعرّف على اللمس الدقيق (قد تكون حساسية اللمس أقل في منطقة القطع). عند التعامل مع
الفتحات، لا تضع قيمة ثابتة لارتفاع شريط الحالة، لأنّ ذلك قد يؤدي إلى تداخل
المحتوى أو قطعه. بدلاً من ذلك، تعامَل مع الصور المقطوعة بأي من الطرق التالية:
بالنسبة إلى Compose، ننصحك باستخدام displayCutout أو safeContent أو safeDrawing للتعامل مع هوامش القطع الناقص في العناصر القابلة للإنشاء. يتيح لك هذا الأسلوب مراعاة مساحة العرض المخصّصة لفتحة الشاشة عند الحاجة، أو تجاهلها عند عدم الحاجة إليها.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-22 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-22 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["A *display cutout* is an area on some devices that extends into the display\nsurface. It allows for an *edge-to-edge* experience while providing space for\nimportant sensors on the front of the device.\n**Figure 1**. Cutout example in Portrait mode **Figure 2**. Cutout example in landscape mode\n\nAndroid supports display cutouts on devices running Android 9 (API level 28) and\nhigher. However, device manufacturers can also support display cutouts on\ndevices running Android 8.1 or lower.\n\nThis page describes how to implement support for devices with cutouts in\nCompose, including how to work with the *cutout area*--- that is, the edge-to-edge\nrectangle on the display surface that contains the cutout.\n\nDefault case\n\nApps targeting API level 34 or lower, or Activities that don't call\n`enableEdgeToEdge`, won't draw into the cutout region by default unless the app\ndraws into a system bar containing the display cutout.\n\nApps targeting API level 35 or higher on devices running Android 15 or\nhigher, or Activities that call `enableEdgeToEdge`, draw into the cutout region.\n\nIn other words, `LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT`,\n`LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES`, and\n`LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER` are interpreted as\n`LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS` for non-floating windows in apps\ntargeting API level 35 or higher on devices running Android 15 or\nhigher.\n\nHandle cutout information manually\n\nYou must handle cutout information to prevent the cutout area from obscuring\nimportant text, controls, or interactive elements requiring fine-touch\nrecognition (touch sensitivity may be lower in the cutout area). While handling\ncutouts, don't hardcode the status bar height, as this can lead to overlapping\nor cut-off content. Instead, handle cutouts in any of the following ways:\n\n- Using [`WindowInsets.displayCutout`](/reference/kotlin/androidx/compose/foundation/layout/package-summary#(androidx.compose.foundation.layout.WindowInsets.Companion).displayCutout()), [`WindowInsets.safeContent`](/reference/kotlin/androidx/compose/foundation/layout/package-summary#(androidx.compose.foundation.layout.WindowInsets.Companion).safeContent()), or\n [`WindowInsets.safeDrawing`](/reference/kotlin/androidx/compose/foundation/layout/package-summary#(androidx.compose.foundation.layout.WindowInsets.Companion).safeDrawing())\n\n- Accessing the cutout `Path` object with [`LocalView.current.rootWindowInsets.displayCutout`](/reference/kotlin/androidx/compose/ui/platform/package-summary#LocalView())\n\nFor Compose, we recommend that you use `displayCutout`, `safeContent`, or\n`safeDrawing` to handle cutout insets in your composables. This approach lets\nyou respect the display cutout padding where required, or ignore it where it is\nnot required.\n\n\n```kotlin\nCanvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) {\n drawRect(Color.Red, style = Stroke(2.dp.toPx()))\n}https://github.com/android/snippets/blob/7a0ebbee11495f628cf9d574f6b6069c2867232a/compose/snippets/src/main/java/com/example/compose/snippets/system/CutoutSnippets.kt#L70-L72\n```\n\n\u003cbr /\u003e\n\nRecommended for you\n\n- Note: link text is displayed when JavaScript is off\n- [Window insets in Compose](/develop/ui/compose/layouts/insets)\n- [Graphics Modifiers](/develop/ui/compose/graphics/draw/modifiers)\n- [Style paragraph](/develop/ui/compose/text/style-paragraph)"]]