Cómo atenuar las barras del sistema (obsoleto)

.

En esta lección, se describe cómo atenuar las barras del sistema (es decir, el estado y la navegación barras) en Android 4.0 (nivel de API 14) y versiones posteriores. Android no proporciona una forma integrada de atenuar las del sistema en versiones anteriores.

Cuando usas este enfoque, el contenido no cambia de tamaño, pero los íconos de las barras del sistema se alejan visualmente. En cuanto el usuario toca la barra de estado o el área de la barra de navegación de la pantalla, ambas barras se vuelven totalmente visibles. La ventaja de esto enfoque es que las barras aún están presentes, pero sus detalles están ocultos, por lo que lo que crea una experiencia envolvente sin sacrificar el acceso sencillo a los bares.

Cómo atenuar las barras de estado y navegación

Puedes atenuar las barras de estado y navegación con el SYSTEM_UI_FLAG_LOW_PROFILE, de la siguiente manera:

Kotlin

// This example uses decor view, but you can use any visible view.
activity?.window?.decorView?.apply {
    systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE
}

Java

// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

En cuanto el usuario toca la barra de estado o navegación, la marca se borra, y esto hace que las barras no queden atenuadas. Una vez que se haya borrado la marca, se debe restablecer la app si quieres volver a atenuar las barras.

En la figura 1, se muestra una galería de imágenes con la barra de navegación atenuada (ten en cuenta que la app de la galería) oculta completamente la barra de estado; no la atenúa). Observa que la barra de navegación (derecha lateral de la imagen) tiene puntos blancos tenues que representan los controles de navegación:

barras del sistema

Figura 1: Barras del sistema atenuadas

En la figura 2, se muestra la misma galería de imágenes, pero con las barras del sistema:

barras del sistema

Figura 2: Barras del sistema visibles

Cómo mostrar las barras de estado y navegación

Si quieres borrar de forma programática las marcas establecidas con setSystemUiVisibility(), puedes hacerlo de la siguiente manera:

Kotlin

activity?.window?.decorView?.apply {
    // Calling setSystemUiVisibility() with a value of 0 clears
    // all flags.
    systemUiVisibility = 0
}

Java

View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);