Como posso desativar o modo paisagem para algumas das visualizações no meu aplicativo Android?
android
android-manifest
android-orientation
lostInTransit
fonte
fonte
Respostas:
Adicione
android:screenOrientation="portrait"
à atividade no AndroidManifest.xml. Por exemplo:EDIT: Como essa se tornou uma resposta super popular, me sinto muito culpado, pois forçar o retrato raramente é a solução certa para os problemas aos quais é frequentemente aplicado.
As principais advertências com retrato forçado:
retainInstance
fragmentos.Portanto, a maioria dos aplicativos deve apenas permitir que os sensores, o software e a configuração física do telefone tomem sua própria decisão sobre como o usuário deseja interagir com seu aplicativo. Em alguns casos, você ainda pode querer pensar se não estiver satisfeito com o comportamento padrão da
sensor
orientação no seu caso de uso:nosensor
a orientação. Isso força a paisagem na maioria dos tablets e o retrato na maioria dos telefones, mas eu ainda não recomendaria isso para a maioria dos aplicativos "normais" (alguns usuários gostam de digitar o teclado de paisagem em seus telefones e muitos usuários de tablets lêem em retrato - e você deve deixá-los).sensorPortrait
pode ser melhor queportrait
no Android 2.3 ou superior; isso permite retratos invertidos, o que é bastante comum no uso de tablets.fonte
Eu não estava ciente da
AndroidManifest.xml
troca de arquivos até ler esta postagem, então, nos meus aplicativos, usei isso:fonte
Adicione isso
android:screenOrientation="portrait"
no seu arquivo de manifesto onde você declara sua atividade como estaSe você quiser usar o código java, tente
antes de chamar o
setContentView
método para sua atividade emonCreate()
.Espero que esta ajuda e facilmente compreensível para todos ...
fonte
Muitas das respostas aqui estão sugerindo o uso
"portrait"
no seu arquivo AndroidManifest.xml. Pode parecer uma boa solução - mas, como observado na documentação, você seleciona dispositivos que podem ter apenas paisagem. Você também está forçando certos dispositivos (que funcionam melhor na paisagem) a serem retratados, sem obter a orientação adequada.Minha sugestão é usar em seu
"nosensor"
lugar. Isso fará com que o dispositivo use sua orientação preferida padrão, não bloqueará compras / downloads no Google Play e garantirá que o sensor não atrapalhe seu jogo (NDK, no meu caso).fonte
Se você deseja configurações do usuário,
então eu recomendo
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Você pode alterar as configurações em um menu de configurações.
Exijo isso porque meus cronômetros devem corresponder ao que está na tela e girá-la destruirá a atividade atual.
fonte
Basta adicionar como esta linha em seu manifesto
fonte
Você pode fazer isso para todo o aplicativo sem precisar fazer com que todas as suas atividades estendam uma classe base comum.
O truque é o primeiro a garantir que você inclua uma subclasse Aplicativo no seu projeto. No onCreate (), chamado quando o aplicativo é iniciado pela primeira vez, você registra um objeto ActivityLifecycleCallbacks (nível de API 14+) para receber notificações de eventos do ciclo de vida da atividade.
Isso dá a você a oportunidade de executar seu próprio código sempre que qualquer atividade em seu aplicativo for iniciada (ou parada, retomada ou qualquer outra coisa). Nesse ponto, você pode chamar setRequestedOrientation () na atividade recém-criada.
E não se esqueça de adicionar app: name = ". MyApp" no seu arquivo de manifesto.
fonte
Use isso em onCreate () da atividade
fonte
Você deve alterar
android:screenOrientation="sensorPortrait"
no AndroidManifest.xmlfonte
Basta adicionar este atributo na sua tag de atividade.
fonte
Se você não quiser passar pelo aborrecimento de adicionar orientação a cada entrada de manifesto da atividade, crie uma classe BaseActivity (herda 'Activity' ou 'AppCompatActivity') que será herdada por todas as atividades do seu aplicativo em vez de 'Activity 'ou' AppCompatActivity 'e adicione o seguinte trecho de código em sua BaseActivity:
fonte
Adicione
android:screenOrientation="portrait"
à atividade que você deseja desativar o modo paisagem.fonte
Se você deseja desativar
Landscape mode for your android app
(ou uma única atividade), tudo o que você precisa fazer é adicionar,android:screenOrientation="portrait"
para a tag de atividade noAndroidManifest.xml
arquivo.Gostar:
Outra maneira, abordagem programática.
Se você quiser fazer isso programaticamente ou seja. usando código Java. Você pode fazer isso adicionando o código abaixo na classe Java da atividade que você não deseja exibir no modo paisagem.
Espero que ajude você. Para obter mais detalhes, visite aqui, digite a descrição do link aqui
fonte
android:screenOrientation="nosensor">
Como alterar a orientação em algumas das visualizações
Em vez de bloquear a orientação de toda a atividade, você pode usar esta classe para bloquear dinamicamente a orientação de qualquer ponto de vista pragmaticamente: -
Faça sua vista paisagem
Faça sua vista Retrato
Desbloquear orientação
Classe Util da Orientação
fonte
usar
fonte
Você deve definir a orientação de cada atividade.
fonte
adicionar classe dentro do método oncreate ()
fonte
Se você estiver usando o Xamarin C #, algumas dessas soluções não funcionarão. Aqui está a solução que eu encontrei para trabalhar.
Acima da classe funciona bem, semelhante a outras soluções, também não é aplicável globalmente e precisa ser colocado em cada cabeçalho de atividade.
fonte
Você pode forçar sua atividade específica a permanecer sempre no modo retrato escrevendo isso em seu manifest.xml
Você também pode forçar sua atividade a permanecer no modo pós-escrito, escrevendo a seguinte linha no método onCreate () da sua atividade
fonte
fonte
Adicione abaixo elogie seu projeto,
então você usa a classe manifest, como React_Native (sua pasta do projeto) / android / app / src / main / AndroidManifest.xml
Obrigado!
fonte
No
<apphome>/platform/android
diretório criadoAndroidManifest.xml
(copiando-o do gerado). Em seguida, adicioneandroid:screenOrientation=
"portrait
" a TODOS os elementos da atividade.fonte
podemos restringir a atividade no modo retrato ou paisagem usando o atributo ou android: screenOrientation.
se tivermos mais de uma atividade no meu programa, você terá liberdade para restringir qualquer atividade em qualquer modo e nunca afetará os outros que você não deseja.
fonte
Ou na classe manifesto.
ou programaticamente
Nota: você deve chamar isso antes do
setContentView
método para sua atividade emonCreate()
.fonte
Adicionar
android:screenOrientation="portrait"
no AndroidManifest.xml arquivo.Por exemplo :
fonte
Na esperança de ajudar outra pessoa, basta o seguinte atributo no ACTIVITY no AndroidManifest.xml:
android: configChanges = "orientação"
Portanto, nó de atividade completo:
fonte
No kotlin, o mesmo pode ser conseguido através de programação usando abaixo
fonte
Funcionou para mim. Tente adicionar este código no arquivo AndroidManifest
fonte
Coloque no seu manifesto.
A orientação será vertical, mas se o telefone do usuário estiver de cabeça para baixo, ele também mostrará a maneira correta. (Portanto, sua tela girará 180 graus).
O sistema ignorará esse atributo se a atividade estiver em execução no modo de várias janelas .
fonte
se sua atividade estiver relacionada ao primeiro estado de orientação do dispositivo, obtenha a orientação atual do dispositivo no
onCreate
método e corrija-a para sempre:fonte