Existe uma maneira de bloquear a orientação durante o tempo de execução? Por exemplo, eu gostaria de permitir que o usuário bloqueie a tela em paisagem se o usuário estiver atualmente em paisagem e alterne a opção de menu.
android
orientation
Jared
fonte
fonte
Tenha cuidado com a diferença entre o que getConfiguration retorna e o que setRequestedOrientation deseja - ambos são int, mas vêm de diferentes definições de constantes.
Veja como bloquear a orientação atual, permitindo giros de 180 graus
fonte
Isso funciona em dispositivos com retrato reverso e paisagem reversa.
Orientação de bloqueio:
Orientação de desbloqueio:
fonte
"Returns the rotation of the screen from its "natural" orientation."
fonte de rotação . Portanto, em um telefone, dizer que ROTATION_0 é retrato provavelmente está correto, mas em um tablet sua orientação "natural" é provavelmente paisagem e ROTATION_0 deve retornar paisagem em vez de retrato.Parece que tive um caso semelhante. Eu queria apoiar qualquer orientação, mas precisava permanecer na orientação atual depois de um determinado ponto do fluxo de trabalho. Minha solução foi:
Na entrada do fluxo de trabalho protegido:
Na saída do fluxo de trabalho protegido:
fonte
Alternativa para a resposta @pstoppani com suporte para tablets (como com a resposta @pstoppani, isso só funcionará em dispositivos> 2.2)
-Testado em
Samsung Galaxy SIII
eSamsung Galaxy Tab 10.1
fonte
||
emrotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90
e comrotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_270
. Então eu tenho 2 dúvidas :::: primeiro, por que aoROTATION_0
invés deROTATION_180
no segundo caso e outra por que marcar 0 grau com 90 não 180 ??||
verificações estão lidando com as duas orientações padrão possíveis com base no dispositivo relatando paisagem versus retrato.Aqui está o meu código, você pode bloquear sua tela com um desses métodos e, uma vez concluída a tarefa, desbloqueá-la com unlockOrientation:
fonte
Aqui está a conversão do Xamarin da resposta de @pstoppani acima.
NOTA: isto é para um fragmento, substitua a atividade. com isso. se usado em uma atividade.
Isso não foi testado com uma abordagem diferente antes de ser usado, mas pode ser útil.
fonte