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](https://developer.android.google.cn/static/images/training/navigation-bar.png?authuser=19&hl=pl)
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 wonResume()
lubonWindowFocusChanged()
. - 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.