Ahora que las apps para Android se ejecutan en una variedad de dispositivos (como teléfonos, tablets, plegables, computadoras de escritorio, automóviles y TVs) y modos de ventanas en pantallas grandes (como pantalla dividida y ventanas de escritorio), los desarrolladores deben compilar apps para Android que se adapten a cualquier tamaño de pantalla y ventana, independientemente de la orientación del dispositivo. Los paradigmas como la restricción de la orientación y el cambio de tamaño son demasiado restrictivos en el mundo actual de varios dispositivos.
Ignora las restricciones de orientación, cambio de tamaño y relación de aspecto
En el caso de las apps orientadas a Android 17 (nivel de API 37) o versiones posteriores, las restricciones de orientación, cambio de tamaño y relación de aspecto ya no se aplican en pantallas cuyo ancho más pequeño sea superior a 600 dp. Las apps ocupan toda la ventana de visualización, independientemente de la relación de aspecto o la orientación preferida del usuario, y no se usa el formato pillarbox.
Android 17 quita la inhabilitación temporal para desarrolladores de las restricciones de orientación y cambio de tamaño en dispositivos con pantalla grande que se proporcionó en Android 16.
Este cambio introduce un nuevo comportamiento estándar de la plataforma. Android se está moviendo hacia un modelo en el que se espera que las apps se adapten a varias orientaciones, tamaños de pantalla y relaciones de aspecto. Las restricciones como la orientación fija o el cambio de tamaño limitado dificultan la adaptabilidad de la app. Haz que tu app sea adaptable para ofrecer la mejor experiencia del usuario posible.
También puedes probar este comportamiento con el framework de compatibilidad de apps
y habilitando la marca de compatibilidad UNIVERSAL_RESIZABLE_BY_DEFAULT.
Cambios rotundos comunes
Ignorar las restricciones de orientación, cambio de tamaño y relación de aspecto podría afectar la IU de tu app en algunos dispositivos, en especial los elementos diseñados para diseños pequeños bloqueados en orientación vertical. Por ejemplo, las apps podrían tener problemas como diseños estirados y animaciones y componentes fuera de la pantalla. Cualquier suposición que hagas sobre la relación de aspecto o la orientación puede causar problemas visuales con tu app. Obtén más información para evitar estos problemas y mejorar el comportamiento adaptable de tu app.
Un problema común en los plegables horizontales o para los cálculos de la relación de aspecto en situaciones como el modo multiventana, las ventanas de escritorio o las pantallas conectadas es cuando la vista previa de la cámara aparece estirada, rotada o recortada. Este problema suele ocurrir en dispositivos con pantalla grande y plegables porque las apps suponen relaciones fijas entre las funciones de la cámara (como la relación de aspecto y la orientación del sensor) y las funciones del dispositivo (como la orientación del dispositivo y la orientación natural). Obtén más información para administrar la vista previa de la cámara.
Permitir la rotación del dispositivo genera más recreación de la actividad, lo que puede provocar la pérdida del estado del usuario si no se conserva correctamente. Obtén información para guardar correctamente el estado de la IU en Cómo guardar estados de la IU.
Detalles de implementación
Se ignoran los siguientes atributos del manifiesto y las APIs de tiempo de ejecución en dispositivos con pantalla grande en los modos de pantalla completa y multiventana:
screenOrientationresizableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
Se ignoran los siguientes valores para screenOrientation, setRequestedOrientation() y getRequestedOrientation():
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
En cuanto al cambio de tamaño de la pantalla, android:resizeableActivity="false",
android:minAspectRatio y android:maxAspectRatio no tienen ningún efecto.
Excepciones
Las restricciones de orientación, cambio de tamaño y relación de aspecto de Android 17 no se aplican en las siguientes situaciones:
- Juegos (según la marca
android:appCategory) - Usuarios que aceptan explícitamente el comportamiento predeterminado de la app en la configuración de la relación de aspecto del dispositivo
- Pantallas cuyo ancho más pequeño es inferior a
sw600dp