Randloses Display manuell einrichten

Sie können das randlose Display in Ihrer App aktivieren, indem Sie enableEdgeToEdge aufrufen. Dies sollte für die meisten Apps ausreichen. In diesem Leitfaden wird beschrieben, wie Sie bei Bedarf Edge-to-Edge-Verbindungen für Ihre App aktivieren, ohne enableEdgeToEdge zu verwenden.

App im Vollbildmodus präsentieren

Verwenden Sie WindowCompat.setDecorFitsSystemWindows(window, false), um Ihre 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 die App diesen Schritt ausgeführt hat, übernimmt das System den gesamten visuellen Schutz der Benutzeroberfläche im Modus für Gestensteuerung und im Schaltflächenmodus.

  • Bedienung über Gesten:Das System wendet eine dynamische Farbanpassung an, bei der die Inhalte der Systemleisten je nach Inhalt dahinter sich farblich ändern. Im folgenden Beispiel ändert sich der Ziehpunkt in der Navigationsleiste in eine dunkle Farbe, wenn er über dem hellen Inhalt liegt, und in eine helle Farbe, wenn er über dem dunklen Inhalt liegt.
Abbildung 1. Farbänderungen im Bedienungsmodus über Gesten.
  • Schaltflächenmodus:Das System wendet ein durchsichtiges Gericht hinter den Systemleisten (API-Level 29 und höher) oder eine transparente Systemleiste (API-Level 28 oder niedriger) an.
Bild mit durchscheinenden Systembalken
Abbildung 2. Durchsichtiges Gitter hinter den Systembalken.
  • Inhaltsfarbe der Statusleiste:Hiermit wird die Farbe des Statusleisteninhalts festgelegt, z. B. Uhrzeit und Symbole.
Farbe des Inhalts der Statusleiste in einem Bild
Abbildung 3. Farbe des Inhalts der Statusleiste.

Sie können die Datei themes.xml bearbeiten, um die Farbe der Navigationsleiste festzulegen. Optional können Sie die Statusleiste als transparent und die Inhaltsfarbe der Statusleiste auf dunkel einstellen.

<!-- 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 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 die Standardfarbe wiederherzustellen.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

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

windowInsetsController.setAppearanceLightNavigationBars(true);