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

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

דוגמה לחיתוך במצב לאורך
איור 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 כדי לטפל בתוספות של המגרעת ברכיבים הניתנים ליצירה. הגישה הזו מאפשרת לכם להוסיף ריפוד למגרעת במסך במקומות שבהם הוא נדרש, או להתעלם ממנו במקומות שבהם הוא לא נדרש.

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