¿Estás tratando de implementar un display de borde a borde en tu aplicación Capacitor? No necesitas ningún hack, plugin o workaround. Capacitor cuenta con el soporte oficial para el display de borde a borde a través de la adjustMarginsForEdgeToEdge opción de configuración - simplemente no está bien documentada.
Muchos desarrolladores se enfrentan a problemas con diseños de borde a borde en aplicaciones Capacitor, especialmente cuando se dirigen a Android 15+. A menudo recurren a plugins o hacks de CSS para lograr la apariencia moderna de borde a borde. Pero hay una mejor forma, nativa.
¿Qué es el Display de Borde a Borde?
El display de borde a borde permite que el contenido de la aplicación se extienda detrás de las barras del sistema (barra de estado y barra de navegación), creando una experiencia de interfaz de usuario más inmersiva y moderna. A partir de Android 15, Google está impulsando el display de borde a borde como estándar para todas las aplicaciones.
La Solución Oficial: ajustarMárgenesParaBordeAEBorde
Capacitor proporciona la adjustMarginsForEdgeToEdge opción de configuración específica para este propósito. Esto se documenta en la documentación oficial de configuración de Capacitorpero es fácil pasar por alto.
¿Cómo configurarlo?
Agregar esto a tu capacitor.config.ts o capacitor.config.json:
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'My App',
webDir: 'dist',
android: {
adjustMarginsForEdgeToEdge: 'auto' // or 'force' or 'disable'
}
};
export default config;
¿O en formato JSON?
{
"appId": "com.example.app",
"appName": "My App",
"webDir": "dist",
"android": {
"adjustMarginsForEdgeToEdge": "auto"
}
}
Opciones de configuración
La adjustMarginsForEdgeToEdge opción admite tres valores:
1. "auto" (Recomendado)
adjustMarginsForEdgeToEdge: 'auto'
¿Qué hace? Verifica automáticamente Android 15+ y el windowOptOutEdgeToEdgeEnforcement configuración. Ajusta las márgenes de manera inteligente según el dispositivo y la configuración.
Mejor para: La mayoría de las aplicaciones de producción que desean una pantalla de borde a borde en dispositivos compatibles mientras se mantiene la compatibilidad con versiones de Android más antiguas.
2. "force"
adjustMarginsForEdgeToEdge: 'force'
¿Qué hace: Forza ajustes de margen independientemente de la versión de Android o otras configuraciones.
Mejor para: Las aplicaciones que desean el comportamiento de borde a borde en todas las versiones de Android compatibles.
3. "disable"
adjustMarginsForEdgeToEdge: 'disable'
¿Qué hace: Deshabilita ajustes de margen automáticos completamente.
Mejor para: Las aplicaciones que manejan el diseño de borde a borde manualmente o no desean el comportamiento de borde a borde.
Nota: Actualmente "disable" is el default, pero esto cambiará a "auto" in Capacitor 8.
¿Por qué esto importa para Android 15+
Con Android 15, Google está imponiendo la pantalla de borde a borde como comportamiento por defecto. Las aplicaciones que no manejan correctamente los diseños de borde a borde pueden experimentar problemas de interfaz de usuario como:
- Contenido oculto detrás de las barras del sistema
- Espaciado y relleno desafortunados
- Apariencia inconsistente en diferentes dispositivos
- Experiencia de usuario deficiente
Al utilizar la configuración oficial adjustMarginsForEdgeToEdge config, aseguras que tu aplicación maneje estos cambios correctamente sin necesidad de code personalizado.
Ejemplo Completo
Aquí tienes un ejemplo de configuración completo para una aplicación moderna Capacitor:
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.myapp',
appName: 'My Awesome App',
webDir: 'www',
server: {
androidScheme: 'https'
},
android: {
// Enable edge-to-edge automatically on supported devices
adjustMarginsForEdgeToEdge: 'auto',
// Other Android config options...
backgroundColor: '#ffffff'
}
};
export default config;
Consideraciones de CSS
Al utilizar una pantalla de borde a borde, es posible que debas agregar algunos CSS para manejar áreas seguras:
/* Add padding for system bars */
body {
padding-top: env(safe-area-inset-top);
padding-bottom: env(safe-area-inset-bottom);
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right);
}
/* Or use viewport-fit */
meta[name="viewport"] {
content: "width=device-width, initial-scale=1, viewport-fit=cover";
}
Prueba tu configuración
Después de configurar adjustMarginsForEdgeToEdge, prueba tu aplicación en:
- Dispositivos Android 15+ - Verifica que el contenido respete correctamente las barras del sistema
- Versiones de Android más antiguas - Asegúrate de la compatibilidad hacia atrás
- Tamaños de pantalla diferentes - Verifica que los diseños funcionen en dispositivos diferentes
- Temas claros y oscuros - Prueba ambos modos de tema
Errores Comunes a Evitar
No Utilizar Plugins para Esto
No necesitas plugins de terceros como capacitor-edge-to-edge o similares. La configuración nativa maneja esto de manera limpia. Si necesitas un control fino sobre el navegador de sistema después de habilitar adjustMarginsForEdgeToEdge, @capgo/@capacitor-barra-de-navegación y @capgo/indicador-de-página complementa la configuración nativa sin reemplazarla.
No Mezclar con Implementaciones Manuales
Si estás utilizando adjustMarginsForEdgeToEdge, elimina cualquier manejo manual de ajustes de ventana o trucos CSS que hayas agregado.
Olvide el CSS de área segura
La configuración gestiona ajustes de margen, pero todavía necesitas usar CSS insets de área segura para un relleno de contenido adecuado.
Guía de Migración
Si actualmente estás utilizando plugins o trucos para edge-to-edge:
- Elimina cualquier plugin de edge-to-edge de tus dependencias
- Agrega la opción de configuración a tu
capacitor.config.ts - Limpia y reconstruye tu proyecto Android
- Prueba exhaustivamente en dispositivos objetivo
# Clean the Android project
npx cap sync android
cd android
./gradlew clean
cd ..
# Rebuild
npx cap copy android
npx cap open android
Preparación para el Futuro
Recuerde que Capacitor 8 establecerá el valor por defecto. "auto" Para prepararse:
- Pruebe con
"auto"ahora para detectar cualquier problema temprano - Actualice su CSS para manejar las áreas seguras correctamente
- Revisar sus diseños en dispositivos habilitados para pantallas de borde a borde
Recursos Adicionales
- Documentación Oficial del Configuración de Capacitor
- Guías de Android para Pantallas Límite a Límite
- CSS Espacios de Área Seguros
Conclusión
La pantalla límite a límite en Capacitor no requiere plugins, trucos ni complicadas soluciones de trabajo alrededor. La adjustMarginsForEdgeToEdge opción de configuración proporciona una solución nativa limpia que está oficialmente respaldada y futura.
Inicie con "auto" para la mayoría de las aplicaciones, pruebe exhaustivamente en dispositivos y agregue CSS de área segura adecuada. Su aplicación estará lista para Android 15 y más allá con un mínimo de esfuerzo.
Preguntas o estás teniendo problemas? La comunidad de Capacitor y documentación oficial son recursos excelentes para obtener ayuda adicional.
Sigue adelante desde la pantalla límite a límite en Capacitor sin plugins
If estás utilizando Edge-to-Edge Display sin plugins en Capacitor para planificar el comportamiento nativo de medios y interfaces, conecta con Usando @capgo/capacitor-actividades-en-vivo para la capacidad nativa en Usando @capgo/capacitor-actividades-en-vivo, @capgo/capacitor-actividades-en-vivo para el detalle de implementación en @capgo/capacitor-actividades-en-vivo, Usando @capgo/capacitor-reproductor-de-videos para la capacidad nativa en Usando @capgo/capacitor-reproductor-de-videos, @capgo/capacitor-reproductor-de-videos para el detalle de implementación en @capgo/capacitor-reproductor-de-videos, y Usando @capgo/capacitor-navegación-nativa para la capacidad nativa en Usando @capgo/capacitor-navegación nativa.