¿Cómo puedo desactivar el modo horizontal para algunas de las vistas en mi aplicación de Android?
android
android-manifest
android-orientation
perdido en el transito
fuente
fuente
Respuestas:
Agregar
android:screenOrientation="portrait"
a la actividad en el AndroidManifest.xml. Por ejemplo:EDITAR: Dado que esta se ha convertido en una respuesta súper popular, me siento muy culpable ya que forzar el retrato rara vez es la solución correcta a los problemas a los que se aplica con frecuencia.
Las principales advertencias con retrato forzado:
retainInstance
fragmentos.Por lo tanto, la mayoría de las aplicaciones deberían 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 desea interactuar con su aplicación. Sin embargo, es posible que desee considerar algunos casos si no está satisfecho con el comportamiento predeterminado de
sensor
orientación en su caso de uso:nosensor
para la orientación. Esto fuerza el paisaje en la mayoría de las tabletas y el retrato 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 simplemente les gusta escribir el teclado virtual horizontal en sus teléfonos, y muchos usuarios de tabletas leen en vertical) deberías dejarlos).sensorPortrait
puede ser mejor queportrait
para Android 2.3+; Esto permite un retrato al revés, que es bastante común en el uso de tabletas.fuente
No estaba al tanto del
AndroidManifest.xml
cambio de archivo hasta que leí esta publicación, así que en mis aplicaciones he usado esto en su lugar:fuente
Agregue esto
android:screenOrientation="portrait"
en su archivo de manifiesto donde declara su actividad como estaSi quieres hacerlo usando el código Java prueba
antes de llamar al
setContentView
método para su actividad enonCreate()
.Espero que esta ayuda sea fácilmente comprensible para todos ...
fuente
Muchas de las respuestas aquí sugieren su uso
"portrait"
en su archivo AndroidManifest.xml. Esto puede parecer una buena solución, pero como se señala en la documentación, está seleccionando dispositivos que solo pueden tener un paisaje. También está obligando a ciertos dispositivos (que funcionan mejor en paisaje) a ir en vertical, sin obtener la orientación adecuada.Mi sugerencia es usar
"nosensor"
en su lugar. Esto hará que el dispositivo use su orientación preferida predeterminada, no bloqueará ninguna compra / descarga en Google Play y garantizará que el sensor no estropee su juego (NDK, en mi caso).fuente
Si quieres configuraciones de usuario,
entonces recomendaría
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Puede cambiar la configuración desde un menú de configuración.
Exijo esto porque mis temporizadores deben corresponder a lo que está en la pantalla, y girar la pantalla destruirá la actividad actual.
fuente
Simplemente agregue Me gusta esta línea en su manifiesto
fuente
Puede hacer esto para toda su aplicación sin tener que hacer que todas sus actividades extiendan una clase base común.
El truco es primero asegurarse de incluir una subclase de aplicación en su proyecto. En su onCreate (), llamado cuando su aplicación se inicia por primera vez, registra un objeto ActivityLifecycleCallbacks (nivel de API 14+) para recibir notificaciones de eventos del ciclo de vida de la actividad.
Esto le brinda la oportunidad de ejecutar su propio código cada vez que se inicia cualquier actividad en su aplicación (o se detiene, se reanuda o lo que sea). En este punto, puede llamar a setRequestedOrientation () en la actividad recién creada.
Y no olvide agregar la aplicación: nombre = ". MyApp" en su archivo de manifiesto.
fuente
Use esto en onCreate () de la Actividad
fuente
Deberías cambiar
android:screenOrientation="sensorPortrait"
en AndroidManifest.xmlfuente
Simplemente agregue este atributo en su etiqueta de actividad.
fuente
Si no desea pasar por la molestia de agregar mejor orientación en cada entrada manifiesta de actividad, cree una clase BaseActivity (hereda 'Activity' o 'AppCompatActivity') que será heredada por cada actividad de su aplicación en lugar de 'Activity 'o' AppCompatActivity 'y simplemente agregue el siguiente código en su BaseActivity:
fuente
Agregue
android:screenOrientation="portrait"
a la actividad que desea deshabilitar el modo horizontal.fuente
Si desea deshabilitar
Landscape mode for your android app
(o una sola actividad) todo lo que necesita hacer es agregar,android:screenOrientation="portrait"
a la etiqueta de actividad en elAndroidManifest.xml
archivo.Me gusta:
Otra forma, enfoque programático.
Si quieres hacer esto programáticamente es decir. usando el código Java Puede hacerlo agregando el siguiente código en la clase Java de la actividad que no desea que se muestre en modo horizontal.
Espero que te ayude. Para más detalles puedes visitar aquí ingresa la descripción del enlace aquí
fuente
android:screenOrientation="nosensor">
Cómo cambiar la orientación en algunas de las vistas
En lugar de bloquear la orientación de toda la actividad, puede usar esta clase para bloquear dinámicamente la orientación desde cualquiera de sus vistas de forma pragmática:
Haz tu vista Paisaje
Haz tu vista Retrato
Desbloquear orientación
Orientación Util Class
fuente
utilizar
fuente
Debe establecer la orientación de cada actividad.
fuente
agregar clase dentro del método oncreate ()
fuente
Si está utilizando Xamarin C #, algunas de estas soluciones no funcionarán. Aquí está la solución que encontré para trabajar.
La clase anterior funciona bien, similar a las otras soluciones, tampoco es aplicable a nivel mundial y debe colocarse en cada encabezado de actividad.
fuente
Puede forzar que su actividad particular permanezca siempre en modo vertical escribiendo esto en su manifiesto.xml
También puede forzar que su actividad permanezca en modo postrait escribiendo la siguiente línea en el método onCreate () de su actividad
fuente
fuente
Agregue a continuación elogio de su proyecto,
luego usa la clase de manifiesto como, React_Native (Your Project Folder) / android / app / src / main / AndroidManifest.xml
¡Gracias!
fuente
En el
<apphome>/platform/android
directorio creadoAndroidManifest.xml
(copiándolo del generado). Luego agregueandroid:screenOrientation=
"portrait
" a TODOS los elementos de actividad.fuente
podemos restringir la Actividad en modo vertical u horizontal usando el atributo o android: screenOrientation.
si tenemos más de una actividad en mi programa, entonces usted tiene la libertad de restringir cualquiera de las actividades en cualquiera de los modos y nunca afectará a las otras que no desee.
fuente
Ya sea en clase manifiesta.
o programáticamente
Nota: debe llamar a este
setContentView
método antes de su actividad enonCreate()
.fuente
Añadir
android:screenOrientation="portrait"
en AndroidManifest.xml archivo.Por ejemplo :
fuente
Con la esperanza de ayudar a alguien más, todo lo que necesita es el siguiente atributo en ACTIVIDAD en AndroidManifest.xml:
android: configChanges = "orientación"
Entonces, nodo de actividad completa:
fuente
En kotlin, lo mismo se puede lograr programáticamente usando a continuación
fuente
Funcionó para mí, intenta agregar este código en el archivo AndroidManifest
fuente
Ponlo en tu manifiesto.
La orientación será vertical, pero si el teléfono del usuario está al revés, también mostrará la forma correcta. (Entonces su pantalla girará 180 grados).
El sistema ignora este atributo si la actividad se ejecuta en modo de ventanas múltiples .
fuente
si su actividad está relacionada con el primer estado de orientación del dispositivo, obtenga la orientación actual del dispositivo en el
onCreate
método y luego corríjala para siempre:fuente