Randloses Display manuell einrichten

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

App im Vollbildmodus darstellen

WindowCompat.setDecorFitsSystemWindows(window, false) verwenden um Ihre App hinter den Systemleisten anzubringen, wie im folgenden Code gezeigt: Beispiel:

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 im Vollbildmodus ausgeführt wird, müssen die Farben der Systemleisten geändert werden, damit die darunter liegenden Inhalte sichtbar sind. 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.

  • Bedienung über Gesten:Das System wendet die dynamische Farbanpassung in den bei dem sich die Inhalte der Systemleisten je nach Inhalt dahinter . Im folgenden Beispiel ändert sich der Ziehpunkt in der Navigationsleiste dunkle Farbe, wenn es über hellem Inhalt liegt, und eine helle Farbe, wenn es darüber liegt dunklen Inhalten.
Abbildung 1. Farbänderungen bei der Bedienung über Gesten .
  • 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: Durchsichtiges Gitter hinter Systembalken.
  • 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. können Sie die Statusleiste transparent und die Farbe für den Inhalt der Statusleiste wie folgt festlegen: dunkel.

<!-- 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 Methode setAppearanceLightNavigationBars() und übergeben Sie true, um die Vordergrundfarbe der Navigation in eine helle Farbe 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);