Esta lição descreve como ocultar a barra de navegação, que foi introduzida no Android 4.0 (nível 14 da API)
Embora esta lição se concentre em ocultar barra de navegação, você deve projetar seu aplicativo para ocultar a barra de status ao mesmo tempo, conforme descrito em Como ocultar a barra de status. Ocultação das barras de navegação e de status, mantendo-as facilmente acessíveis permite que o conteúdo utilize todo o espaço de exibição, proporcionando uma experiência experiência do usuário.
Ocultar a barra de navegação
Você pode ocultar a barra de navegação usando o
sinalização SYSTEM_UI_FLAG_HIDE_NAVIGATION
. Esse snippet oculta
a barra de navegação e a barra de status:
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);
Observe o seguinte:
- Com essa abordagem, tocar em qualquer lugar da tela faz com que a barra de navegação (e barra de status) para reaparecer e permanecer visível. A interação do usuário faz com que as sinalizações sejam ser apagadas.
- Depois que as sinalizações forem apagadas, seu app precisará redefini-las se você quiser ocultar as barras novamente. Consulte Como responder a alterações de visibilidade da IU para obter uma discussão sobre como detectar alterações de visibilidade da IU para que seu aplicativo possa responder de acordo.
- Onde você define as sinalizações da IU faz toda a diferença. Se você ocultar as barras de sistema na função
onCreate()
e o usuário pressionar Home, as barras do sistema serão reaparecer. Quando o usuário reabre a atividade,onCreate()
não será chamado, então as barras do sistema permanecerão visíveis. Se você quiser que a interface do sistema mude para persistem enquanto o usuário navega para dentro e para fora da sua atividade, defina flags de interfaceonResume()
ouonWindowFocusChanged()
. - Somente o método
setSystemUiVisibility()
tem efeito se a visualização a partir da qual você chamá-lo estiver visível. - Navegar para fora da visualização causa flags
definido com
setSystemUiVisibility()
que será apagado.
Fazer o conteúdo aparecer por trás da barra de navegação
No Android 4.1 e superior, é possível configurar o conteúdo do seu aplicativo para que apareça atrás
da barra de navegação, para que o conteúdo não seja redimensionado conforme a barra de navegação se esconde e
programas Para fazer isso, use
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
:
Talvez também seja necessário usar
SYSTEM_UI_FLAG_LAYOUT_STABLE
para ajudar seu app a manter um
layout estável.
Ao usar essa abordagem, torna-se sua responsabilidade garantir que as partes essenciais da interface do seu app não sejam cobertas pelas barras de sistema. Para mais discussão sobre esse tópico, consulte o Como ocultar a barra de status.