Randloses Display manuell einrichten

Der Aufruf von enableEdgeToEdge kapselt die Logik, die für eine echte Abwärtskompatibilität erforderlich ist, und ist daher die empfohlene Methode zum Einrichten eines Displays mit Edge-to-Edge-Darstellung. In der Compose- und Views-Dokumentation finden Sie Informationen zur modernen Methode, um enableEdgeToEdge zu verwenden.

Wenn Ihre App ein Display mit Edge-to-Edge-Darstellung manuell einrichten muss, können Sie die folgenden Schritte ausführen. Dies wird jedoch nicht empfohlen:

  1. Rufen Sie WindowCompat.setDecorFitsSystemWindows(window, false) auf.
  2. Legen Sie für die Systemleisten Transparenz fest.
  3. Verarbeiten Sie Insets.

App im Vollbildmodus anordnen

Verwenden Sie WindowCompat.setDecorFitsSystemWindows(window, false) , um Ihre App hinter den Systemleisten anzuordnen, wie im folgenden Code beispiel 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, muss Ihre App die Systemleisten auch transparent machen.

Sie können die Datei themes.xml bearbeiten, um die Farbe der Status- und Navigations leiste auf transparent zu setzen und die Farbe des Statussymbols 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 Farbe des Inhalts der Statusleiste zu steuern. Verwenden Sie dazu die setAppearanceLightNavigationBars() Funktion, ü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);

Insets verarbeiten

Schließlich muss Ihre App Insets verarbeiten, damit wichtige UI-Elemente nicht von den Systemleisten und dem Displayausschnitt verdeckt werden. Informationen zum Verarbeiten von Insets finden Sie in der Compose- und Views -Dokumentation.