Cómo atenuar las barras del sistema

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

Cuando usas este enfoque, el contenido no cambia de tamaño, pero los íconos en las barras del sistema se alejan visualmente. Ni bien el usuario toca el área de la barra de estado o navegación de la pantalla, las dos barras quedan visibles. La ventaja de este enfoque es que las barras aún están presentes, pero los detalles están ocultos. De esta manera, se crea una experiencia envolvente sin sacrificar la facilidad de acceso a las barras.

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

Puedes usar la marca SYSTEM_UI_FLAG_LOW_PROFILE para atenuar las barras de estado y navegación 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);
    

Ni bien el usuario toca la barra de estado o navegación, se borra la marca y se desactiva la atenuación de las barras. Después de borrar la marca, tu app debe restablecerla 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 Galería oculta la barra de estado por completo; no la atenúa). Observa que la barra de navegación (lado derecho de la pantalla) 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 manera 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);