Randloses Display manuell einrichten

Sie können die randlose Anzeige in Ihrer App aktivieren, indem Sie enableEdgeToEdge aufrufen. Das sollte für die meisten Apps ausreichen. In diesem Leitfaden wird beschrieben, wie Sie die Edge-to-Edge-Darstellung aktivieren, wenn Ihre App dies ohne Verwendung von enableEdgeToEdge tun muss.

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 Ihre App in einem Edge-to-Edge-Layout ausgeführt wird, müssen Sie die Farben der Systemleisten ändern, damit der Inhalt darunter sichtbar ist. Nachdem Ihre App diesen Schritt ausgeführt hat, übernimmt das System den gesamten visuellen Schutz der Benutzeroberfläche im Gestennavigationsmodus und im Schaltflächenmodus.

  • Gestensteuerungsmodus:Das System wendet eine dynamische Farbanpassung an, bei der sich die Inhalte der Systemleisten je nach Inhalt dahinter farblich ändern. Im folgenden Beispiel ändert sich die Farbe des Griffs 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 über Gesten.
  • Schaltflächenmodus:Das System wendet hinter den Systemleisten einen durchscheinenden Scrim (für API-Level 29 oder höher) oder eine transparente Systemleiste (für API-Level 28 oder niedriger) an.
Bild mit durchscheinenden Systemleisten
Abbildung 2. Ein durchscheinendes Gewebe hinter den Systemleisten.
  • Farbe des Inhalts der Statusleiste:Hiermit wird die Farbe des Inhalts der Statusleiste festgelegt, z. B. 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 als transparent und die Farbe des Statusleisteninhalts als 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 Support Library WindowInsetsControllerCompat zu verwenden. 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);