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


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