Como desactivar o modo paisagem no Android?

Como posso desativar o modo paisagem para algumas das vistas no meu aplicativo Android?

Solução

Adicione android:screenOrientation="portrait" à actividade no AndroidManifest.xml. Por exemplo:

EDIT: Desde que isto se tornou uma resposta super-popular, eu me sinto muito culpado, já que forçar o retrato raramente é a solução correta para os problemas aos quais é aplicado com freqüência.
As grandes advertências com retrato forçado:

  • Isto não o absolve de ter de pensar na actividade eventos do ciclo de vida ou estado de poupança/restauro adequado. Há muitos coisas além da rotação de aplicativos que podem acionar uma atividade destruição/recriação, incluindo coisas inevitáveis como o multitarefa. Não há atalhos; aprenda a utilizar feixes e fragmentos de 'manter a substância'.
  • Tenha em mente que, ao contrário da experiência bastante uniforme do iPhone, existem alguns dispositivos onde o retrato não é a orientação claramente popular. Quando os usuários estão em dispositivos com teclados de hardware ou game pads a la the Nvidia Shield, em Chromebooks, em foldables, ou em Samsung DeX, forçar o retrato pode tornar a sua experiência com aplicativos limitantes ou um grande problema de usabilidade. Se a sua aplicação não tem um argumento UX forte que levaria a uma experiência negativa para suportar outras orientações, você provavelmente não deve forçar a paisagem. Estou falando de coisas como "este é um aplicativo de caixa registradora para um modelo específico de tablet sempre usado em uma doca fixa de hardware".

Portanto, a maioria dos aplicativos deve apenas deixar os sensores do telefone, software e configuração física tomarem suas próprias decisões sobre como o usuário quer interagir com seu aplicativo. Alguns casos que você ainda pode querer pensar, no entanto, se você não estiver satisfeito com o comportamento padrão de orientação do 'sensor' no seu caso de uso:

  • Se a sua principal preocupação é a orientação acidental muda a meio da atividade que você acha que os sensores e software do dispositivo não vão lidar bem (por exemplo, em um jogo baseado em inclinação) considere o suporte a paisagem e retrato, mas utilizando o nosensor para a orientação. Isto força a paisagem na maioria dos tablets e retrato na maioria dos telefones, mas eu ainda não recomendaria isto para a maioria das aplicações "normais" (alguns utilizadores gostam apenas de digitar no softkeyboard de paisagem nos seus telefones, e muitos utilizadores de tablets lêem em retrato - e você deve deixá-los ler).
  • Se você ainda precisar forçar retrato por alguma razão, sensorPortrait pode ser melhor que portrait para Android 2.3+; isso permite retrato de cabeça para baixo, o que é bastante comum no uso de tablet.
Comentários (12)

Eu não estava ciente da troca do arquivo AndroidManifest.xml até ler este post, então nos meus aplicativos eu usei isto em seu lugar:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);     //  Fixed Portrait orientation
Comentários (3)

No diretório /platform/android criado AndroidManifest.xml (copiando-o do gerado). Depois adicione android:screenOrientation="portrait" a TODOS os elementos da atividade.

Comentários (0)