Para habilitar la pantalla de borde a borde en tu app, llama a
enableEdgeToEdge
Esto debería ser suficiente para la mayoría de las apps. En esta guía, se describe cómo habilitar
de borde a borde si tu app necesita hacerlo sin usar enableEdgeToEdge
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 código
ejemplo:
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); }
Cambiar el color de las barras del sistema
Cuando operas en un diseño de borde a borde, tu app necesita cambiar los colores de las barras del sistema para permitir que el contenido que hay debajo sea visible. Después de que la app realiza este paso, el sistema se encarga de toda la protección visual del usuario en el modo de navegación por gestos y en el modo de botones.
- Modo de navegación por gestos: el sistema aplica una adaptación dinámica del color en el contenido de las barras del sistema cambia de color según el contenido detrás de ellos. En el siguiente ejemplo, el controlador de la barra de navegación cambia a un color oscuro cuando está por encima del contenido claro y a color claro cuando está por encima de el contenido oscuro.
- Modo de botón: el sistema aplica una capa lámina detrás de las barras del sistema (para el nivel de API 29 o versiones posteriores) o un sistema transparente (para el nivel de API 28 o versiones anteriores).
- Color del contenido de la barra de estado: Controla el color del contenido de la barra de estado, como la hora y los iconos.
Puedes editar el archivo themes.xml
para establecer el color de la barra de navegación.
De manera opcional, para configurar la barra de estado como transparente y el color de contenido de la barra de estado,
oscuro.
<!-- 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 WindowInsetsController
directamente, pero te recomendamos que uses la biblioteca de compatibilidad
WindowInsetsControllerCompat
siempre que sea posible. Puedes usar la API de WindowInsetsControllerCompat
en lugar de
theme.xml
para controlar el color del contenido de la barra de estado. Para hacerlo, usa el
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);