O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Ocultar a barra de navegação

Esta lição descreve como ocultar a barra de navegação introduzida no Android 4.0 (API de nível 14).

Embora o foco desta lição seja ocultar a barra de navegação, você precisa criar seu app para ocultar a barra de status ao mesmo tempo, conforme descrito em Ocultar a barra de status. Ocultar as barras de navegação e de status mantendo o fácil acesso a ambas permite que o conteúdo use todo o espaço da tela, proporcionando uma experiência do usuário mais imersiva.

barras do sistema

Figura 1. Barra de navegação.

Ocultar a barra de navegação

Você pode ocultar a barra de navegação usando a sinalização SYSTEM_UI_FLAG_HIDE_NAVIGATION. Este snippet oculta tanto a barra de navegação quanto 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 a barra de status) reapareça e permaneça visível. A interação do usuário apaga as sinalizações.
  • Depois que as sinalizações são apagadas, seu app precisa redefini-las para ocultar as barras mais uma vez. Consulte Responder a alterações de visibilidade da IU para ver uma discussão sobre como detectar alterações de visibilidade na IU para que seu app possa responder de forma adequada.
  • Onde você define as sinalizações da IU faz toda a diferença. Se você ocultar as barras do sistema no método onCreate() da atividade e o usuário pressionar "Início", as barras do sistema reaparecerão. Quando o usuário reabrir a atividade, onCreate() não será chamado, de modo que as barras do sistema permanecerão visíveis. Se você quiser que as alterações da IU do sistema sejam mantidas enquanto o usuário navega dentro e fora de sua atividade, defina sinalizações de IU em onResume() ou onWindowFocusChanged().
  • O método setSystemUiVisibility() só tem efeito se a visualização chamada estiver visível.
  • Navegar para fora da visualização faz com que as sinalizações definidas com setSystemUiVisibility() sejam apagadas.

Fazer o conteúdo aparecer por trás da barra de navegação

No Android 4.1 e em versões mais recentes, é possível definir que o conteúdo do aplicativo apareça por trás da barra de navegação. Assim, ele não precisa ser redimensionado conforme a barra de navegação é ocultada ou exibida. Para fazer isso, use SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION. Talvez seja necessário usar SYSTEM_UI_FLAG_LAYOUT_STABLE para ajudar seu app a manter um layout estável.

Quando você usa essa abordagem, é sua responsabilidade garantir que partes essenciais da IU do app não sejam cobertas pelas barras do sistema. Para ver mais discussões sobre esse assunto, consulte a lição Ocultar a barra de status.