Randloses Display manuell einrichten

Rufen Sie enableEdgeToEdge auf, um das Edge-to-Edge-Display in Ihrer App zu aktivieren. Dies sollte für die meisten Apps ausreichen. In diesem Leitfaden wird beschrieben, wie Sie Edge-to-Edge aktivieren, wenn Ihre App dies ohne enableEdgeToEdge tun muss.

App im Vollbildmodus darstellen

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 deine App diesen Schritt ausgeführt hat, übernimmt das System den gesamten visuellen Schutz der Benutzeroberfläche im Gestennavigationsmodus und im Schaltflächenmodus.

  • Bedienung über Gesten:Das System wendet eine dynamische Farbanpassung an, bei der sich die Farbe der Inhalte der Systemleisten abhängig vom Inhalt dahinter ändert. Im folgenden Beispiel ändert sich der Ziehpunkt in der Navigationsleiste in eine dunkle Farbe, wenn er sich über hellem Inhalt befindet, und in eine helle Farbe, wenn er sich über dunklen Inhalten befindet.
Abbildung 1. Farbänderungen bei der Bedienung über Gesten.
  • Schaltflächenmodus:Das System wendet ein durchsichtiges Gewebe hinter den Systemleisten (ab API-Level 29) oder eine transparente Systemleiste (API-Level 28 oder niedriger) an.
Ein Bild mit durchscheinenden Systembalken
Abbildung 2. Durchsichtiges Gitter hinter Systembalken.
  • Farbe des Inhalts der Statusleiste:Hiermit wird die Farbe des Inhalts der Statusleiste festgelegt, z. B. Uhrzeit und Symbole.
Die Inhaltsfarbe eines Bilds, das in der Statusleiste zu sehen ist
Abbildung 3. Farbe des Inhalts der Statusleiste.

Sie können die Datei themes.xml bearbeiten, um die Farbe der Navigationsleiste festzulegen und optional die Farbe der Statusleiste und die Farbe des Inhalts der Statusleiste auf dunkel festzulegen.

<!-- 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 dringend, nach Möglichkeit die Supportbibliothek WindowInsetsControllerCompat zu verwenden. Sie können die WindowInsetsControllerCompat API anstelle von theme.xml verwenden, um die Inhaltsfarbe der Statusleiste festzulegen. 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);