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

Aby włączyć w aplikacji wyświetlanie od krawędzi do krawędzi, wywołaj enableEdgeToEdge. W przypadku większości aplikacji powinno to wystarczyć. Z tego przewodnika dowiesz się, jak włączyć obsługę od początku do końca, jeśli jest to konieczne w przypadku Twojej aplikacji bez korzystania z funkcji enableEdgeToEdge.

Udostępnij swoją aplikację na pełnym ekranie

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

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

Zmiana koloru pasków systemowych

Aplikacja działa w układzie od krawędzi do krawędzi, dlatego musi zmienić kolory pasków systemowych, by pod nią była widoczna. Gdy aplikacja wykona ten krok, system zajmie się całą wizualną ochroną interfejsu użytkownika w trybie nawigacji przy użyciu gestów oraz w trybie przycisku.

  • Tryb nawigacji przy użyciu gestów: system stosuje dynamiczne dostosowywanie kolorów, w którym zawartość pasków systemowych zmienia kolor w zależności od tego, co jest za nimi. W poniższym przykładzie uchwyt na pasku nawigacyjnym zmienia kolor na ciemny, gdy znajduje się nad jasnymi treściami, a na jasny, gdy znajduje się nad treścią ciemną.
Rysunek 1. Zmienia się kolor w trybie nawigacji przy użyciu gestów.
  • Tryb przycisku: system stosuje półprzezroczysty ekran za paskiem systemu (w przypadku interfejsu API na poziomie 29 lub nowszym) lub przezroczystym paskiem systemowym (w przypadku interfejsu API na poziomie 28 lub starszym).
Obraz przedstawiający przezroczyste paski systemowe
Rysunek 2. Za pasami systemowymi przezroczysta kratka.
  • Kolor zawartości paska stanu: określa kolor treści paska stanu, np. godziny i ikon.
Kolor treści na pasku stanu obrazu
Rysunek 3. Kolor treści paska stanu.

Możesz edytować plik themes.xml, aby ustawić kolor paska nawigacyjnego i opcjonalnie ustawić pasek stanu na przezroczysty, a kolor treści paska stanu 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 bezpośrednio użyć interfejsu API WindowInsetsController, ale zdecydowanie zalecamy, aby w miarę możliwości korzystać z Biblioteki pomocy WindowInsetsControllerCompat. Do określania koloru zawartości paska stanu możesz używać interfejsu WindowInsetsControllerCompat API zamiast theme.xml. Aby to zrobić, użyj funkcji setAppearanceLightNavigationBars(), przesyłając wartość true, aby zmienić kolor pierwszego planu nawigacji na jasny, lub false, aby 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);