Ocultar a barra de navegação
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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.
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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Hide the navigation bar\n\nThis lesson describes how to hide the navigation bar, which was introduced in\nAndroid 4.0 (API level 14).\n\nEven though this lesson focuses on hiding the\nnavigation bar, you should design your app to hide the status bar\nat the same time, as described in [Hiding the Status Bar](/training/system-ui/status).\nHiding the navigation and status bars (while still keeping them readily accessible)\nlets the content use the entire display space, thereby providing a more immersive\nuser experience.\n\n**Figure 1.** Navigation bar.\n\nHide the Navigation Bar\n-----------------------\n\nYou can hide the navigation bar using the\n[SYSTEM_UI_FLAG_HIDE_NAVIGATION](/reference/android/view/View#SYSTEM_UI_FLAG_HIDE_NAVIGATION) flag. This snippet hides both\nthe navigation bar and the status bar: \n\n### Kotlin\n\n```kotlin\nwindow.decorView.apply {\n // Hide both the navigation bar and the status bar.\n // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as\n // a general rule, you should design your app to hide the status bar whenever you\n // hide the navigation bar.\n systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN\n}\n```\n\n### Java\n\n```java\nView decorView = getWindow().getDecorView();\n// Hide both the navigation bar and the status bar.\n// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as\n// a general rule, you should design your app to hide the status bar whenever you\n// hide the navigation bar.\nint uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION\n | View.SYSTEM_UI_FLAG_FULLSCREEN;\ndecorView.setSystemUiVisibility(uiOptions);\n```\n\nNote the following:\n\n- With this approach, touching anywhere on the screen causes the navigation bar (and status bar) to reappear and remain visible. The user interaction causes the flags to be be cleared.\n- Once the flags have been cleared, your app needs to reset them if you want to hide the bars again. See [Responding to UI Visibility Changes](/training/system-ui/visibility) for a discussion of how to listen for UI visibility changes so that your app can respond accordingly.\n- Where you set the UI flags makes a difference. If you hide the system bars in your activity's [onCreate()](/reference/android/app/Activity#onCreate(android.os.Bundle)) method and the user presses Home, the system bars will reappear. When the user reopens the activity, [onCreate()](/reference/android/app/Activity#onCreate(android.os.Bundle)) won't get called, so the system bars will remain visible. If you want system UI changes to persist as the user navigates in and out of your activity, set UI flags in [onResume()](/reference/android/app/Activity#onResume()) or [onWindowFocusChanged()](/reference/android/view/Window.Callback#onWindowFocusChanged(boolean)).\n- The method [setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)) only has an effect if the view you call it from is visible.\n- Navigating away from the view causes flags set with [setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)) to be cleared.\n\nMake Content Appear Behind the Navigation Bar\n---------------------------------------------\n\nOn Android 4.1 and higher, you can set your application's content to appear behind\nthe navigation bar, so that the content doesn't resize as the navigation bar hides and\nshows. To do this, use\n[SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION](/reference/android/view/View#SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION).\nYou may also need to use\n[SYSTEM_UI_FLAG_LAYOUT_STABLE](/reference/android/view/View#SYSTEM_UI_FLAG_LAYOUT_STABLE) to help your app maintain a\nstable layout.\n\nWhen you use this approach, it becomes your responsibility to ensure that critical parts\nof your app's UI don't end up getting covered by system bars. For more\ndiscussion of this topic, see the [Hiding the Status Bar](/training/system-ui/status#behind) lesson."]]