Llamar a enableEdgeToEdge encapsula la lógica necesaria para ser realmente
compatible con versiones anteriores y, por lo tanto, es la forma recomendada de configurar una pantalla de
extremo a extremo. Consulta la documentación de Compose y Views
en lugar de esta guía para conocer la forma moderna de ir de extremo a extremo con
enableEdgeToEdge.
Si bien no se recomienda, si tu app debe configurar manualmente una pantalla de extremo a extremo puedes seguir estos pasos:
- Llama a
WindowCompat.setDecorFitsSystemWindows(window, false). - Configura las barras del sistema como transparentes.
- 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 extremo a extremo 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 configurar 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.MyApp">
<item name="android:navigationBarColor">
@android:color/transparent
</item>
<!-- Optional: set to transparent if your app is drawing behind the status bar. -->
<item name="android:statusBarColor">
@android:color/transparent
</item>
<!-- Optional: set for a light status bar with dark content. -->
<item name="android:windowLightStatusBar">
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
setAppearanceLightNavigationBars()
función 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 recorte de pantalla. Consulta la documentación de Compose y Views para obtener información sobre cómo controlar las inserciones.