מידע על פריימים חתוכים

חיתוך בתצוגה הוא אזור במכשירים מסוימים שמתרחב אל פני השטח של התצוגה. הוא מאפשר חוויה של מסך מלא, ועדיין מספק מקום לחיישנים חשובים בחלק הקדמי של המכשיר.

דוגמה לחיתוך במצב לאורך
איור 1. דוגמה לחיתוך במצב 'דיוקן'
דוגמה לחיתוך במצב פריסה לרוחב
איור 2. דוגמה לחיתוך בפריסה לרוחב

‫Android תומך בחיתוכי מסך במכשירים עם Android מגרסה 9 (רמת API‏ 28) ומעלה. עם זאת, יצרני מכשירים יכולים גם לתמוך בחיתוכי מסך במכשירים עם Android מגרסה 8.1 ומטה.

בדף הזה מוסבר איך להטמיע תמיכה במכשירים עם חריצים ב-Compose, כולל איך לעבוד עם אזור החריץ – כלומר, המלבן מקצה לקצה על משטח התצוגה שמכיל את החריץ.

מקרה ברירת מחדל

אפליקציות שמכוונות לרמת API 34 ומטה, או פעילויות שלא קוראות ל-enableEdgeToEdge, לא יציגו את עצמן באזור החיתוך כברירת מחדל, אלא אם האפליקציה מוצגת בסרגל מערכת שמכיל את החיתוך של המסך.

אפליקציות שמטרגטות רמת API‏ 35 ומעלה במכשירים עם Android 15 ומעלה, או פעילויות שקוראות ל-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 בחלונות לא צפים באפליקציות שמטרגטות רמת API 35 ומעלה במכשירים עם Android 15 ומעלה.

טיפול ידני במידע על חיתוך

צריך לטפל במידע שמוסתר כדי למנוע מצב שבו האזור המוסתר מסתיר טקסט חשוב, אמצעי בקרה או רכיבים אינטראקטיביים שנדרשת בהם רגישות גבוהה למגע (רגישות המגע עשויה להיות נמוכה יותר באזור המוסתר). כשעובדים עם חיתוכי מסך, לא כדאי להגדיר קידוד קשיח לגובה של סרגל הסטטוס, כי זה עלול לגרום לחפיפה או לחיתוך של התוכן. במקום זאת, אפשר לטפל בחלקים החסרים באחת מהדרכים הבאות:

לגבי Compose, מומלץ להשתמש ב-displayCutout, ב-safeContent או ב-safeDrawing כדי לטפל בתוספות של חיתוך ברכיבי ה-Composable. הגישה הזו מאפשרת לכם להשתמש בריווח של החלק החסר במסך במקרים שבהם זה נדרש, או להתעלם ממנו במקרים שבהם זה לא נדרש.

Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) {
    drawRect(Color.Red, style = Stroke(2.dp.toPx()))
}