Ręczne konfigurowanie wyświetlacza od krawędzi do krawędzi

Aby włączyć wyświetlanie od krawędzi do krawędzi w aplikacji, wywołaj metodę enableEdgeToEdge. To powinno wystarczyć w przypadku większości aplikacji. Z tego przewodnika dowiesz się, jak włączyć technologię Edge, jeśli aplikacja musi to robić bez korzystania z enableEdgeToEdge.

Wyświetlanie aplikacji na pełnym ekranie

Użyj narzędzia WindowCompat.setDecorFitsSystemWindows(window, false), aby umieścić aplikację za paskami systemowymi, jak pokazano w tym przykładowym kodzie:

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);
}

Zmień kolor pasków systemowych

W przypadku układu od krawędzi do krawędzi aplikacja musi zmienić kolory pasków systemowych, by zawartość pod nim była widoczna. Gdy aplikacja wykona ten krok, system będzie obsługiwać wizualną ochronę interfejsu użytkownika w trybie nawigacji przy użyciu gestów i w trybie przycisków.

  • Tryb nawigacji przy użyciu gestów: system stosuje dynamiczne dostosowywanie kolorów, w których zawartość pasków systemowych zmienia kolor w zależności od tego, co się za nimi znajduje. W poniższym przykładzie uchwyt na pasku nawigacyjnym zmienia kolor na ciemny, gdy znajduje się nad jasnymi treściami, i na jasny, gdy znajduje się nad nimi.
Rys. 1. Zmieniają się w trybie nawigacji przy użyciu gestów.
  • Tryb przycisku: system stosuje przezroczysty skryp za paskami systemowymi (w przypadku interfejsu API na poziomie 29 lub nowszym) lub przezroczysty pasek systemowy (w przypadku interfejsu API na poziomie 28 lub starszym).
Obraz przedstawiający półprzezroczyste paski systemowe
Rysunek 2. Przezroczysta siatka za pasami systemowymi.
  • Kolor zawartości paska stanu: steruje kolorem zawartości paska stanu, np. godziny i ikon.
Obraz pokazujący kolor zawartości paska stanu
Rysunek 3. Kolor treści paska stanu.

W pliku themes.xml możesz ustawić kolor paska nawigacyjnego i opcjonalnie ustawić go jako przezroczysty, a kolor jego treści na ciemny.

<!-- 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>

Możesz używać interfejsu API WindowInsetsController bezpośrednio, ale jeśli to możliwe, zdecydowanie zalecamy korzystanie z Biblioteki pomocy WindowInsetsControllerCompat. Do sterowania kolorem treści paska stanu możesz używać interfejsu WindowInsetsControllerCompat API zamiast theme.xml. Aby to zrobić, użyj funkcji setAppearanceLightNavigationBars(), przekazując true, aby zmienić kolor pierwszego planu nawigacji na jasny, lub false, by przywrócić kolor domyślny.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

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

windowInsetsController.setAppearanceLightNavigationBars(true);