Niektóre treści najlepiej oglądać w trybie pełnoekranowym bez żadnych oznaczeń na na pasku stanu i nawigacji. Przykłady: filmy, gry, obraz w galeriach, książkach i prezentacjach. Jest to tzw. trybie pojemnym. Z tej strony dowiesz się, jak zaciekawić użytkowników treści na pełnym ekranie.

Tryb pojemny pomaga użytkownikom uniknąć przypadkowego wychodzenia z gry oraz zapewnia niezwykłe wrażenia podczas oglądania zdjęć, filmów i książek. Zwracaj jednak uwagę na to, jak często użytkownicy korzystają z aplikacji, aby sprawdzić powiadomienia, do przeprowadzania niezaplanowanych wyszukiwań lub podejmowania innych działań. Ponieważ tryb pojemny powoduje utratę łatwego dostępu do nawigacji w systemie, używaj tylko trybu pojemnego; gdy korzystanie z aplikacji wykracza poza zwykłe korzystanie z dodatkowego ekranu. kosmosu.
Użyj formatu WindowInsetsControllerCompat.hide()
aby ukryć paski systemowe oraz WindowInsetsControllerCompat.show()
sprowadzić ich z powrotem.
Poniższy fragment kodu pokazuje przykład konfiguracji przycisku do ukrywania i wyświetlania pasków systemu.
override fun onCreate(savedInstanceState: Bundle?) { ... val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) // Configure the behavior of the hidden system bars. windowInsetsController.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { view, windowInsets -> // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) } } else { binding.toggleFullscreenButton.setOnClickListener { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()) } } ViewCompat.onApplyWindowInsets(view, windowInsets) } }
@Override protected void onCreate(Bundle savedInstanceState) { ... WindowInsetsControllerCompat windowInsetsController = WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView()); // Configure the behavior of the hidden system bars. windowInsetsController.setSystemBarsBehavior( WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE ); // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener( getWindow().getDecorView(), (view, windowInsets) -> { // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener(v -> { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()); }); } else { binding.toggleFullscreenButton.setOnClickListener(v -> { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()); }); } return ViewCompat.onApplyWindowInsets(view, windowInsets); }); }
Opcjonalnie możesz określić typ pasków systemowych do ukrycia i określenia co robią, gdy użytkownik wejdzie z nim w interakcję.
Określ, które paski systemowe mają być ukryte
Aby określić typ słupków systemowych do ukrycia, przekaż jeden z tych parametrów
do WindowInsetsControllerCompat.hide()
.
Użyj aplikacji
WindowInsetsCompat.Type.systemBars()
, aby: ukryć oba paski systemowe.Użyj aplikacji
WindowInsetsCompat.Type.statusBars()
, aby: ukryć tylko pasek stanu.Użyj aplikacji
WindowInsetsCompat.Type.navigationBars()
, aby: ukryj tylko pasek nawigacyjny.
Określ zachowanie ukrytych pasków systemowych
Użyj elementu WindowInsetsControllerCompat.setSystemBarsBehavior()
, aby określić zachowanie ukrytych pasków systemu podczas interakcji z nimi przez użytkownika.
Użyj
WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_TOUCH
, aby wyświetlić ukryte paski systemu podczas jakichkolwiek interakcji użytkownika na odpowiednim wyświetlaczu.Użyj gestu
WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE
, aby wyświetlić ukryte paski systemu podczas wykonywania gestów systemowych, takich jak przesuwanie palcem po krawędzi ekranu, na której pasek jest ukryty.Użyj
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
, aby tymczasowo wyświetlić ukryte paski systemu za pomocą gestów systemowych, takich jak przesuwanie palcem od krawędzi ekranu, na której znajduje się ukryty pasek. Te przejściowe paski systemowe nakładają się na treść aplikacji, mogą przezroczystość i są automatycznie ukrywane po krótkim czasie oczekiwania.