¿Hay alguna forma de bloquear la orientación durante el tiempo de ejecución? Por ejemplo, me gustaría permitirle al usuario bloquear la pantalla en horizontal si el usuario está actualmente en horizontal y alternar la opción del menú.
android
orientation
Jared
fuente
fuente
Tenga cuidado con la diferencia entre lo que devuelve getConfiguration y lo que desea setRequestedOrientation: ambos son int, pero provienen de diferentes definiciones constantes.
A continuación, se explica cómo bloquear la orientación actual y permitir giros de 180 grados
fuente
Esto funciona en dispositivos con retrato inverso y paisaje inverso.
Orientación de bloqueo:
Desbloquear orientación:
fuente
"Returns the rotation of the screen from its "natural" orientation."
fuente de rotación . Por lo tanto, en un teléfono que dice que ROTATION_0 es vertical, es probable que sea correcto, pero en una tableta, su orientación "natural" es probablemente horizontal y ROTATION_0 debería devolver horizontal en lugar de vertical.Parecía haber tenido un caso similar. Quería apoyar cualquier orientación, pero necesitaba permanecer en la orientación actual después de cierto punto en el flujo de trabajo. Mi solucion fue:
Al entrar en el flujo de trabajo protegido:
Al salir del flujo de trabajo protegido:
fuente
Alternativa a la respuesta @pstoppani con soporte para tabletas (al igual que con la respuesta @pstoppani, esto solo funcionará en dispositivos> 2.2)
-Probado en
Samsung Galaxy SIII
ySamsung Galaxy Tab 10.1
fuente
||
enrotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90
y conrotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_270
. Entonces tengo 2 dudas :::: primero, ¿Por qué enROTATION_0
lugar deROTATION_180
en el segundo caso y otro por qué marcar 0 grados con 90 no 180?||
comprobaciones manejan las dos posibles orientaciones predeterminadas basadas en el dispositivo que informa horizontal o vertical.Aquí está mi código, puede bloquear con uno de estos métodos su pantalla y una vez finalizada la tarea desbloquearla con unlockOrientation:
fuente
Aquí está la conversión de Xamarin de la respuesta de @pstoppani anterior.
NOTA: esto es para un Fragmento, reemplace Actividad. con esto. si se usa dentro de una actividad.
Esto no se ha probado con un enfoque diferente antes de usarlo, pero puede ser útil.
fuente