Randloses Display manuell einrichten

Rufen Sie enableEdgeToEdge auf, um das Edge-to-Edge-Display in Ihrer App zu aktivieren. Das sollte für die meisten Apps ausreichen. In diesem Leitfaden wird beschrieben, wie Sie den Vollbildmodus aktivieren, wenn dies für Ihre App erforderlich ist, ohne enableEdgeToEdge zu verwenden.

App im Vollbildmodus layouten

Verwende WindowCompat.setDecorFitsSystemWindows(window, false), um deine App hinter den Systemleisten anzuordnen, 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 in einem randlosen Layout arbeiten, muss Ihre App die Farben der Systemleisten ändern, damit der darunterliegende Inhalt sichtbar ist. Nachdem Ihre App diesen Schritt ausgeführt hat, übernimmt das System den gesamten visuellen Schutz der Benutzeroberfläche im Modus für die Gestennavigation und im Modus für die Tastennavigation.

  • Modus für die Gestennavigation:Das System verwendet eine dynamische Farbanpassung, bei der die Inhalte der Systemleisten je nach dem dahinter liegenden Inhalt die Farbe ändern. Im folgenden Beispiel ändert sich der Griff in der Navigationsleiste in eine dunkle Farbe, wenn er sich über hellen Inhalten befindet, und in eine helle Farbe, wenn er sich über dunklen Inhalten befindet.
Abbildung 1. Farbänderungen im Modus für die Bedienung per Geste.
  • Schaltflächenmodus:Das System wendet hinter den Systemleisten einen durchsichtigen Hintergrund (für API-Level 29 oder höher) oder eine transparente Systemleiste (für API-Level 28 oder niedriger) an.
Ein Bild mit durchsichtigen Systemleisten
Abbildung 2. Durchsichtiger Schleier hinter den Systemleisten.
  • Farbe der Statusleiste:Hiermit wird die Farbe der Statusleiste festgelegt, z. B. für die Uhrzeit und Symbole.
Ein Bild, das die Farbe des Inhalts der Statusleiste zeigt
Abbildung 3. Farbe des Inhalts der Statusleiste.

Sie können die Datei themes.xml bearbeiten, um die Farbe der Navigationsleiste festzulegen und optional die Statusleiste transparent und die Farbe der Statusleiste dunkel zu gestalten.

<!-- 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 WindowInsetsController API direkt verwenden. Wir empfehlen jedoch nach Möglichkeit die Supportbibliothek WindowInsetsControllerCompat. 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 geben Sie true ein, 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);