¿Cómo lo configuro para que la aplicación se ejecute solo en modo vertical? Quiero que se desactive el modo horizontal mientras se ejecuta la aplicación. ¿Cómo lo hago programáticamente?
201
Puede especificar android:screenOrientation="portrait"
para cada actividad en su archivo manifest.xml. No puede especificar esta opción en la application
etiqueta.
Otra opción es hacerlo mediante programación, por ejemplo en una Activity
clase base:
@Override
public void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
La última opción es hacerlo con los oyentes del ciclo de vida de la actividad, que solo está disponible desde Android 4.0 (API 14+). Todo sucede en una Application
clase personalizada :
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleAdapter() {
@Override
public void onActivityCreated(Activity a, Bundle savedInstanceState) {
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
}
ActivityLifecycleAdapter
es solo una clase auxiliar que necesitará crear, que será una implementación vacía de ActivityLifecycleCallbacks
(para que no tenga que anular todos y cada uno de los métodos de esa interfaz cuando simplemente necesita uno de ellos).
Sí, puede hacer esto tanto programáticamente como para todas sus actividades haciendo una actividad abstracta que extienda todas sus actividades.
Esta actividad abstracta también se puede utilizar para un menú global.
fuente
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
debería ser la mejor respuesta porque está destinado a dejar el dispositivo en el estado predeterminado porque algunos dispositivos no tienen una orientación vertical. Sin embargo, 'nosensor' NO funciona para mí, por lo que la respuesta de @ arcone me representa.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
Application
subclase en su proyecto. En suonCreate()
, llamado cuando su aplicación se inicia por primera vez, registra unActivityLifecycleCallbacks
objeto (nivel 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
setRequestedOrientation()
a la actividad recién creada.fuente
Puede configurar esto en su archivo de manifiesto.
y también puede lograr lo mismo escribiendo el código en su archivo de clase como:
fuente
Agregue android: screenOrientation = "portrait" a la actividad en AndroidManifest.xml. Por ejemplo:
fuente
Utilizar:
Simplemente escriba esta línea en el archivo de manifiesto de su aplicación en cada actividad que desee mostrar solo en modo vertical.
fuente
Escriba esto en su archivo de manifiesto, para cada actividad:
fuente
A partir de la guía para desarrolladores de Android:
Entonces, en el archivo AndroidManifest.xml, podemos poner:
fuente
Agregando
<preference name="orientation" value="portrait" />
debajo<widget>
de mi config.xml funcionó para mí.(Las otras soluciones no funcionaron en mi dispositivo, se sobrescribieron durante la construcción o dieron errores de desaprobación durante el proceso de construcción).
fuente
en el archivo Manifiesto, qué actividad desea utilizar en "retrato" , debe escribir este código en la etiqueta Actividad
Me gusta esto
pero si quieres pantalla en horizontal usa este código como este
fuente
fuente
Si alguien se preguntaba, cómo podría hacer esto para toda su aplicación sin tener que hacer que todas sus actividades extiendan una clase base común en Kotlin , vea el siguiente ejemplo:
y luego tienes que agregar tu clase base común en AndroidManifest así:
fuente
Puedes hacerlo de dos maneras.
android:screenOrientation="portrait"
su archivo de manifiesto a la actividad correspondientesetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
a su actividad en el método `onCreate ()fuente
Similar a la respuesta de Graham Borland ... pero parece que no tiene que crear una clase de Aplicación si no lo desea ... solo cree una Actividad Base en su proyecto
Y extienda esta clase en lugar de AppCompatActivity donde quiera usar el modo Potrait
fuente
Para usuarios de Xamarin:
Si extiende todas sus actividades a
BaseActivity
Solo agregue:Esto resolverá el problema. Si desea que alguna actividad en particular esté en paisaje, anule esto
OnActivityCreated
. Como:fuente
En su Manifiesto, escriba esto:
fuente