Ukrywanie paska nawigacyjnego

Z tej lekcji dowiesz się, jak ukryć pasek nawigacyjny, który pojawił się w Android 4.0 (poziom API 14).

Mimo że ta lekcja skupia się na ukrywaniu pasek nawigacyjny, zaprojektuj aplikację tak, aby ukryć pasek stanu. jednocześnie zgodnie z opisem w sekcji Ukrywanie paska stanu. ukrywanie przycisków nawigacyjnych i pasków stanu (jednocześnie łatwy dostęp do nich); Dzięki temu treści mogą zajmować całą powierzchnię wyświetlania, co zapewnia bardziej atrakcyjny obraz. użytkowników.

paski systemowe

Rysunek 1. Pasek nawigacyjny.

Ukryj pasek nawigacyjny

Pasek nawigacyjny możesz ukryć za pomocą flaga SYSTEM_UI_FLAG_HIDE_NAVIGATION. Ten fragment kodu ukrywa obie na pasku nawigacyjnym i pasku stanu:

Kotlin

window.decorView.apply {
    // Hide both the navigation bar and the status bar.
    // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
    // a general rule, you should design your app to hide the status bar whenever you
    // hide the navigation bar.
    systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
}

Java

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

Uwaga:

  • Przy tej metodzie dotknięcie dowolnego miejsca na ekranie spowoduje wyświetlenie paska nawigacyjnego (oraz paska stanu), aby pojawiły się one ponownie i pozostawały widoczne. Interakcja użytkownika powoduje, że flagi stają się można usunąć.
  • Gdy flagi zostaną usunięte, aplikacja musi je zresetować, jeśli zechce znowu ukryć paski. Informacje znajdziesz w sekcji Reagowanie na zmiany widoczności interfejsu. jak nasłuchiwać zmian widoczności interfejsu, aby aplikacja mogła odpowiednio zareagować.
  • Miejsce, w którym ustawiasz flagi interfejsu, ma znaczenie. Jeśli ukryjesz paski systemowe w sekcji aktywności onCreate(), a użytkownik naciśnie przycisk Home, paski systemowe będą które pojawiają się ponownie. Gdy użytkownik ponownie otworzy aktywność, onCreate() nie zostanie wywołany, więc paski systemowe są nadal widoczne. Jeśli chcesz, aby interfejs systemu zmieniał się na pozostają aktywne, gdy użytkownik przechodzi do Twojej aktywności i z niej, ustaw flagi UI w onResume() lub onWindowFocusChanged().
  • Tylko metoda setSystemUiVisibility() działa, jeśli widok, z którego je wywołujesz, jest widoczny.
  • Opuszczenie widoku powoduje pojawienie się flag ustaw z: setSystemUiVisibility() do wyczyszczenia.

Wyświetlanie treści za paskiem nawigacyjnym

W Androidzie 4.1 i nowszych możesz skonfigurować treści aplikacji tak, by były widoczne za aby zawartość nie zmieniła rozmiaru, ponieważ pasek nawigacyjny jest ukrywany, programów telewizyjnych. W tym celu użyj SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION Może być też konieczne użycie SYSTEM_UI_FLAG_LAYOUT_STABLE, aby pomóc aplikacji utrzymać stabilny układ.

W takim przypadku Twoim obowiązkiem jest zadbanie o to, aby kluczowe elementy interfejsu aplikacji nie powinny być zasłonięte słupkami systemu. Więcej na ten temat, patrz Ukrywanie paska stanu.