Eine Display-Aussparung ist ein Bereich auf einigen Geräten, der in die Displayoberfläche hineinragt. So wird ein randloses Display ermöglicht und gleichzeitig Platz für wichtige Sensoren auf der Vorderseite des Geräts geschaffen.


Android unterstützt Display-Aussparungen auf Geräten mit Android 9 (API-Level 28) und höher. Gerätehersteller können jedoch auch Displayausschnitte auf Geräten mit Android 8.1 oder niedriger unterstützen.
Auf dieser Seite wird beschrieben, wie Sie Unterstützung für Geräte mit Ausschnitten in Compose implementieren, einschließlich der Verwendung des Ausschnittbereichs, d. h. des Rechtecks auf der Displayoberfläche, das den Ausschnitt enthält und sich von einer Kante zur anderen erstreckt.
Standardfall
Bei Apps, die auf API-Level 34 oder niedriger ausgerichtet sind, oder bei Aktivitäten, bei denen enableEdgeToEdge
nicht aufgerufen wird, wird standardmäßig nicht in den Ausschnittbereich gezeichnet, es sei denn, die App zeichnet in eine Systemleiste, die den Displayausschnitt enthält.
Apps, die auf API-Level 35 oder höher ausgerichtet sind, auf Geräten mit Android 15 oder höher oder Aktivitäten, die enableEdgeToEdge
aufrufen, werden in den Ausschnittbereich gezeichnet.
Mit anderen Worten: LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
, LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
und LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
werden als LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
für nicht schwebende Fenster in Apps interpretiert, die auf API-Level 35 oder höher ausgerichtet sind und auf Geräten mit Android 15 oder höher ausgeführt werden.
Ausschnittinformationen manuell verarbeiten
Sie müssen Ausschnittinformationen verarbeiten, damit der Ausschnittbereich nicht wichtige Texte, Steuerelemente oder interaktive Elemente verdeckt, die eine genaue Berührungserkennung erfordern (die Berührungsempfindlichkeit kann im Ausschnittbereich geringer sein). Bei der Verarbeitung von Aussparungen sollte die Höhe der Statusleiste nicht fest codiert werden, da dies zu überlappenden oder abgeschnittenen Inhalten führen kann. Stattdessen können Sie Ausschnitte auf eine der folgenden Arten verarbeiten:
WindowInsets.displayCutout
,WindowInsets.safeContent
oderWindowInsets.safeDrawing
verwendenAuf das Ausschnittobjekt
Path
mitLocalView.current.rootWindowInsets.displayCutout
zugreifen
Für Compose empfehlen wir, displayCutout
, safeContent
oder safeDrawing
zu verwenden, um Ausschnitt-Insets in Ihren Composables zu verarbeiten. So können Sie das Padding für das Display-Cutout bei Bedarf berücksichtigen oder es ignorieren, wenn es nicht erforderlich ist.
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
Empfehlungen für dich
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Fenstereinsetzungen in Compose
- Grafikmodifikatoren
- Absatz formatieren