¿Cómo desactivar el modo horizontal en Android?

¿Cómo puedo desactivar el modo apaisado para algunas de las vistas de mi aplicación Android?

Solución

Añadir android:screenOrientation="portrait" a la actividad en el AndroidManifest.xml. Por ejemplo:

EDIT: Dado que esto se ha convertido en una respuesta super-popular, me siento muy culpable, ya que forzar el retrato es rara vez la solución correcta a los problemas que se aplica con frecuencia.
Las principales advertencias con el retrato forzado:

  • Esto no le exime de tener que pensar en la actividad eventos del ciclo de vida o guardar/restaurar el estado adecuadamente. Hay un montón de cosas, además de la rotación de la aplicación, que pueden desencadenar una destrucción/recreación de la actividad, incluyendo cosas inevitables como la multitarea. No hay atajos; aprende a usar paquetes y fragmentos retainInstance.
  • Ten en cuenta que, a diferencia de la experiencia bastante uniforme del iPhone, hay algunos dispositivos en los que la orientación vertical no es la claramente popular. Cuando los usuarios se encuentran en dispositivos con teclados de hardware o pads de juego como la Nvidia Shield, en Chromebooks, en foldables, o en Samsung DeX, forzar la orientación vertical puede hacer que la experiencia de tu aplicación sea limitante o una gran molestia de usabilidad. Si tu aplicación no tiene un fuerte argumento de UX que pueda llevar a una experiencia negativa por soportar otras orientaciones, probablemente no deberías forzar el apaisado. Me refiero a cosas como "esta es una aplicación de caja registradora para un modelo específico de tableta que se utiliza siempre en un muelle de hardware fijo"

Así que la mayoría de las aplicaciones deben dejar que los sensores del teléfono, el software y la configuración física tomen su propia decisión sobre cómo el usuario quiere interactuar con su aplicación. Unos pocos casos que todavía puede querer pensar, sin embargo, si usted & #39; re no es feliz con el comportamiento predeterminado de sensor orientación en su caso de uso:

  • Si lo que más le preocupa son los cambios accidentales de orientación en medio de la actividad, que cree que los sensores y el software del dispositivo no van a manejar bien (por ejemplo, en un juego basado en la inclinación), considere la posibilidad de admitir la orientación horizontal y vertical, pero utilizando "no-sensor" para la orientación. Esto fuerza la orientación horizontal en la mayoría de las tabletas y la vertical en la mayoría de los teléfonos, pero aún así no lo recomendaría para la mayoría de las aplicaciones "normales" (a algunos usuarios les gusta escribir en el teclado horizontal de sus teléfonos, y muchos usuarios de tabletas leen en vertical - y deberías dejarles hacerlo).
  • Si todavía necesitas forzar el retrato por alguna razón, sensorPortrait puede ser mejor que portrait para Android 2.3+; esto permite el retrato al revés, que es bastante común en el uso de la tableta.
Comentarios (12)

No conocía el archivo AndroidManifest.xml hasta que leí este post, así que en mis aplicaciones lo he utilizado en su lugar:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);     //  Fixed Portrait orientation
Comentarios (3)

En el directorio /platform/android crea AndroidManifest.xml (copiándolo del generado). Luego añade android:screenOrientation="portrait" a TODOS los elementos de la actividad.

Comentarios (0)