Randloses Display manuell einrichten

Beim Aufrufen von enableEdgeToEdge wird die Logik gekapselt, die für eine abwärtskompatible Einrichtung eines Edge-to-Edge-Displays erforderlich ist. Dies ist daher die empfohlene Methode. In der Compose-Dokumentation und der Views-Dokumentation finden Sie Informationen dazu, wie Sie mit enableEdgeToEdge den Edge-to-Edge-Modus auf moderne Weise verwenden.

Wenn Ihre App ein Edge-to-Edge-Display manuell einrichten muss, können Sie so vorgehen:

  1. WindowCompat.setDecorFitsSystemWindows(window, false) anrufen.
  2. Stellen Sie die Systemleisten auf transparent ein.
  3. Insets verarbeiten

App im Vollbildmodus anzeigen

Verwenden Sie WindowCompat.setDecorFitsSystemWindows(window, false), um Ihre App hinter den Systemleisten zu platzieren, wie im folgenden Codebeispiel gezeigt:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  WindowCompat.setDecorFitsSystemWindows(window, false)
}

Java

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
}

Farbe der Systemleisten ändern

Wenn Sie ein Edge-to-Edge-Layout für Android 14 und ältere Versionen manuell erstellen, müssen Sie auch die Systemleisten in Ihrer App transparent machen.

Sie können die Datei themes.xml bearbeiten, um die Farbe der Status- und Navigationsleiste als transparent festzulegen und die Farbe des Statusleistensymbols zu ändern.

<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
  <item name="android:navigationBarColor">
     @android:color/transparent
  </item>

  <!-- Optional: set to transparent if your app is drawing behind the status bar. -->
  <item name="android:statusBarColor">
     @android:color/transparent
  </item>

  <!-- Optional: set for a light status bar with dark content. -->
  <item name="android:windowLightStatusBar">
    true
  </item>
</style>

Sie können die WindowInsetsControllerCompat API anstelle von theme.xml verwenden, um die Inhaltsfarbe der Statusleiste zu steuern. Verwenden Sie dazu die Funktion setAppearanceLightNavigationBars() und übergeben Sie true, um die Vordergrundfarbe der Navigation in eine helle Farbe zu ändern, oder false, um zur Standardfarbe zurückzukehren.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

WindowInsetsControllerCompat windowInsetsController =
      ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
    return;
}

windowInsetsController.setAppearanceLightNavigationBars(true);

Griffeinsätze

Außerdem muss Ihre App Insets verarbeiten, damit wichtige UI-Elemente nicht von den Systemleisten und dem Displayausschnitt verdeckt werden. Informationen zum Umgang mit Insets finden Sie in der Dokumentation zu Compose und Views.