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

Aby włączyć wyświetlanie bez ramki w aplikacji, wywołaj funkcję enableEdgeToEdge. Powinno to wystarczyć w przypadku większości aplikacji. Z tego przewodnika dowiesz się, jak włączyć tryb od krawędzi do krawędzi, jeśli Twoja aplikacja musi to zrobić bez użycia enableEdgeToEdge.

Wyświetlanie aplikacji na pełnym ekranie

Użyj WindowCompat.setDecorFitsSystemWindows(window, false), aby umieścić aplikację za paskami systemu, jak pokazano 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

Gdy aplikacja działa w układzie od krawędzi do krawędzi, musi zmieniać kolory pasków systemowych, aby treść pod nimi była widoczna. Po wykonaniu tego kroku przez aplikację system zajmuje się całą ochroną wizualną interfejsu użytkownika w trybie nawigacji gestami i w trybie przycisków.

  • Tryb nawigacji gestami: system stosuje dynamiczne dostosowywanie kolorów, w którym zawartość pasków systemowych zmienia kolor w zależności od treści znajdujących się za nimi. W poniższym przykładzie uchwyt na pasku nawigacyjnym zmienia kolor na ciemny, gdy znajduje się nad jasną treścią, a na jasny, gdy znajduje się nad ciemną treścią.
Rysunek 1. Zmiany kolorów w trybie nawigacji przy użyciu gestów.
  • Tryb przycisku: system stosuje półprzezroczystą zasłonę za paskami systemowymi (w przypadku interfejsu API na poziomie 29 lub wyższym) lub przezroczysty pasek systemowy (w przypadku interfejsu API na poziomie 28 lub niższym).
Obraz przedstawiający półprzezroczyste paski systemowe
Rysunek 2. Przezroczysta siatka za paskami systemowymi.
  • Kolor zawartości paska stanu:określa kolor zawartości paska stanu, np. godziny i ikon.
Obraz pokazujący kolor treści paska stanu
Rysunek 3. Kolor treści na pasku stanu.

Możesz edytować plik themes.xml, aby ustawić kolor paska nawigacyjnego i opcjonalnie ustawić przezroczystość paska stanu oraz ciemny kolor treści paska stanu.

<!-- 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 WindowInsetsController API bezpośrednio, ale w miarę możliwości zdecydowanie zalecamy korzystanie z biblioteki pomocy WindowInsetsControllerCompat. Zamiast interfejsu WindowInsetsControllerCompat możesz użyć interfejsu theme.xml API, aby kontrolować kolor treści na pasku stanu. Aby to zrobić, użyj funkcji setAppearanceLightNavigationBars() i przekaż wartość true, aby zmienić kolor pierwszego planu nawigacji na jasny, lub false, aby przywrócić domyślny kolor.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

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

windowInsetsController.setAppearanceLightNavigationBars(true);