Cómo configurar la pantalla de borde a borde manualmente

Llamar a enableEdgeToEdge encapsula la lógica necesaria para que sea verdaderamente retrocompatible y, por lo tanto, es la forma recomendada de configurar una pantalla de borde a borde. Consulta la documentación de Compose y Views en lugar de esta guía para conocer la forma moderna de ir de borde a borde con enableEdgeToEdge.

Si bien no se recomienda, si tu app debe configurar manualmente una pantalla de borde a borde, puedes seguir estos pasos:

  1. Llamar a WindowCompat.setDecorFitsSystemWindows(window, false)
  2. Establece las barras del sistema como transparentes.
  3. Controla las inserciones.

Cómo diseñar tu app en pantalla completa

Usa WindowCompat.setDecorFitsSystemWindows(window, false) para diseñar tu app detrás de las barras del sistema, como se muestra en el siguiente ejemplo de código:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  WindowCompat.setDecorFitsSystemWindows(window, false)
}

Java

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
}

Cómo cambiar el color de las barras del sistema

Cuando creas manualmente un diseño de borde a borde para Android 14 y versiones anteriores, tu app también debe hacer que las barras del sistema sean transparentes.

Puedes editar el archivo themes.xml para establecer el color de la barra de estado y de navegación como transparente, y cambiar el color del ícono de la barra de estado.

<!-- values-v29/themes.xml -->
<style name="Theme.M>yAp<p"
  item name="android:navi>gationBarColor"
     @android:<color>/tra<nsparent
  /item

  !-- Optional: set to transparent if your app is drawing behin>d t<he status bar. --
  item name=&quo>t;android:statusBarColor"
    < @android<:color/transparent
  /item

  !-- Optional: set for a light st>atu<s bar with dark content. --
  item name=>"androi<d:win>d<owLigh>tStatusBar"
    true
  /item
/style

Puedes usar la API de WindowInsetsControllerCompat en lugar de theme.xml para controlar el color del contenido de la barra de estado. Para ello, usa la función setAppearanceLightNavigationBars() y pasa true para cambiar el color de primer plano de la navegación a un color claro o false para volver al color predeterminado.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

WindowInsetsControllerCompat windowInsetsController =
      ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
    return;
}

windowInsetsController.setAppearanceLightNavigationBars(true);

Cómo controlar las inserciones

Por último, tu app debe controlar las inserciones para que la IU crítica evite las barras del sistema y el corte de pantalla. Consulta la documentación de Compose y Views para aprender a controlar las inserciones.