¿Cómo puedo desactivar el modo horizontal para algunas de las vistas en mi aplicación de Android?
¿Cómo puedo desactivar el modo horizontal para algunas de las vistas en mi aplicación de Android?
Añadir android:screenOrientation="portrait"
a la actividad en AndroidManifest.xml. Por ejemplo:
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
EDITAR: Dado que esto 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 el retrato forzado:
retainInstance
fragmentosEntonces, la mayoría de las aplicaciones deberían permitir 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, en algunos casos es posible que desee pensar 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 panorama en la mayoría de las tabletas y retratos en la mayoría de los teléfonos, pero aún no lo recomendaría para la mayoría de las aplicaciones "normales" (algunos usuarios simplemente escriben el teclado de pantalla en sus teléfonos y muchos usuarios de tabletas leen en retrato, y deberías dejarlos).sensorPortrait
puede ser mejor que portrait
para Android 2.3+; esto permite el retrato boca abajo, que es bastante común en el uso de tabletas.No estaba al tanto de la AndroidManifest.xml
Cambie el archivo hasta leer esta publicación, por lo que en mis aplicaciones lo he usado en su lugar:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Fixed Portrait orientation
Agrega esto android:screenOrientation="portrait"
en su archivo de manifiesto donde declara su actividad como esta
<activity android:name=".yourActivity"
....
android:screenOrientation="portrait" />
Si quieres usar el código java prueba
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
antes de llamar setContentView
método para su actividad en onCreate()
.
Espero que esta ayuda y fácil de entender para todos ...
Muchas de las respuestas aquí sugieren usar "portrait"
en su archivo AndroidManifest.xml Esto podría parecer una buena solución, pero como se señala en la documentación, usted está seleccionando dispositivos que solo pueden tener el paisaje. También está forzando a ciertos dispositivos (que funcionan mejor en el paisaje) a entrar en el retrato, sin obtener la orientación adecuada.
Mi sugerencia es usar "nosensor"
en lugar. Esto dejará que el dispositivo use su orientación preferida predeterminada, no bloqueará compras / descargas en Google Play, y se asegurará de que el sensor no estropee su juego (NDK, en mi caso).
Si quieres configuraciones de usuario,
entonces yo recomendaría setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Puede cambiar la configuración desde un menú de configuración.
Lo necesito porque mis temporizadores deben corresponder a lo que hay en la pantalla, y al girar la pantalla se destruirá la actividad actual.
Simplemente agregue Like this Line en su manifiesto
android: screenOrientation = "retrato"
<manifest
package="com.example.speedtestmeter"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="ComparisionActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="GaugeView"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="Resultactivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
</application>
</manifest>
Simplemente agregue este atributo en su etiqueta de actividad.
android:screenOrientation="portrait"
debes cambiar android:screenOrientation="sensorPortait"
en AndroidManifest.xml