Ocultar a barra de navegação

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.

barras do sistema

Figura 1. Barra de navegação.

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 interface onResume() ou onWindowFocusChanged().
  • 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.