Cómo ocultar la barra de navegación
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En esta lección, se describe cómo ocultar la barra de navegación, que se presentó en
Android 4.0 (nivel de API 14)
Aunque esta lección se centra en ocultar
en la barra de navegación, debes diseñar tu app de modo que oculte la barra de estado
al mismo tiempo, como se describe en Cómo ocultar la barra de estado.
Ocultar las barras de navegación y de estado (y, al mismo tiempo, acceder a ellas)
permite que el contenido use todo el espacio de la pantalla, lo que proporciona una experiencia más inmersiva
la experiencia del usuario.
Figura 1: Barra de navegación
Cómo ocultar la barra de navegación
Para ocultar la barra de navegación, usa
SYSTEM_UI_FLAG_HIDE_NAVIGATION
. Este fragmento oculta ambos
la barra de navegación y la barra de estado:
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);
Ten en cuenta lo siguiente:
- Con este enfoque, tocar en cualquier lugar de la pantalla activa la barra de navegación (y
la barra de estado) para volver a aparecer y permanecer visible. La interacción del usuario hace que las marcas
borrar.
- Una vez que se hayan borrado las marcas, tu app deberá restablecerlas si
quieres ocultar las barras de nuevo. Consulta Cómo responder a los cambios de visibilidad de la IU para un
sobre cómo detectar los cambios de visibilidad de la IU para que tu app pueda
responder en consecuencia.
- El lugar en el que estableces las marcas de la IU hace la diferencia. Si ocultas las barras del sistema en el archivo
onCreate()
y el usuario presiona Inicio, las barras del sistema
volverá a aparecer. Cuando el usuario vuelve a abrir la actividad, onCreate()
.
no se llamará, por lo que las barras del sistema permanecerán visibles. Si quieres que la IU del sistema cambie a
persistan a medida que el usuario entre y salga de tu actividad, configura marcas de la IU en
onResume()
o onWindowFocusChanged()
.
- Solo el método
setSystemUiVisibility()
tendrá efecto si la vista desde la que lo llamas está visible.
- Si te alejas de la vista, se generan marcas
se estableció con
setSystemUiVisibility()
que se borrará.
Cómo hacer que el contenido aparezca detrás de la barra de navegación
En Android 4.1 y versiones posteriores, puedes configurar el contenido de tu aplicación para que aparezca
la barra de navegación, de modo que el contenido no cambie de tamaño cuando la barra de navegación se oculta y
programas. Para hacerlo, usa
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
También es posible que debas usar
SYSTEM_UI_FLAG_LAYOUT_STABLE
para que tu app mantenga una
y un diseño estable.
Cuando usas este enfoque, es tu responsabilidad garantizar que las partes críticas
de la IU de tu app no terminen cubiertas por las barras del sistema. Para ver más
debate sobre este tema, consulta el
Cómo ocultar la lección Barra de estado
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]