Sobald Ihre App auf SDK 35 oder höher ausgerichtet ist, wird die Edge-to-Edge-Funktion erzwungen. Die Systemstatusleiste und die Leisten für die Bedienung über Gesten sind transparent, die Leiste für die 3-Button-Steuerung ist jedoch durchscheinend. Rufen Sie enableEdgeToEdge auf, um die Abwärtskompatibilität zu gewährleisten.
Die Standardeinstellungen des Systems funktionieren jedoch möglicherweise nicht für alle Anwendungsfälle. In der Designanleitung für Android-Systemleisten und der Designanleitung für Edge-to-Edge-Funktionen finden Sie eine Übersicht darüber, wann transparente oder durchscheinende Systemleisten infrage kommen.
Transparente Systemleisten erstellen
Wenn Sie eine transparente Leiste für die Bedienung über Gesten erstellen möchten, richten Sie Ihre App auf Android 15 oder höher aus oder rufen Sie enableEdgeToEdge() mit Standardargumenten für frühere Versionen auf. Legen Sie für die
Leiste für die 3-Button-Steuerung Window.setNavigationBarContrastEnforced
auf false fest, da sonst ein durchscheinender Schleier angewendet wird.
Durchscheinende Systemleisten erstellen
Wenn Sie eine durchscheinende Statusleiste erstellen möchten, erstellen Sie eine benutzerdefinierte zusammensetzbare Funktion, die den Hauptinhalt überlappt und einen Farbverlauf im Bereich der Einsätze zeichnet.
class SystemBarProtectionSnippets : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // enableEdgeToEdge sets window.isNavigationBarContrastEnforced = true // which is used to add a translucent scrim to three-button navigation enableEdgeToEdge() setContent { MyTheme { // Main content MyContent() // After drawing main content, draw status bar protection StatusBarProtection() } } } } @Composable private fun StatusBarProtection( color: Color = MaterialTheme.colorScheme.surfaceContainer, ) { Spacer( modifier = Modifier .fillMaxWidth() .height( with(LocalDensity.current) { (WindowInsets.statusBars.getTop(this) * 1.2f).toDp() } ) .background( brush = Brush.verticalGradient( colors = listOf( color.copy(alpha = 1f), color.copy(alpha = 0.8f), Color.Transparent ) ) ) ) }
Fügen Sie für adaptive Apps eine benutzerdefinierte zusammensetzbare Funktion ein, die den Farben der einzelnen
Bereiche entspricht, wie im Edge-to-Edge-Design zu sehen. Wenn Sie eine durchscheinende
Navigationsleiste erstellen möchten, legen Sie Window.setNavigationBarContrastEnforced auf „true“ fest.