Android Studio 3.6.
Quero que meu aplicativo esteja sempre no portrait
modo. Então no meu AndroidMainfest.xml
:
<activity
android:name=".activity.SplashActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Eu corro o aplicativo e SplashActivity
mostra no portrait
modo. Agradável. Mas o editor mostra o seguinte erro:
Expecting android:screenOrientation="unspecified"
Por quê?
android
android-manifest
screen-orientation
a_subscriber
fonte
fonte
afeta apenas o Android Studio 3.6 ou superior
Qual é o problema aqui? Esse problema ocorre porque a estrutura do Android deseja que o usuário controle a orientação do aplicativo, não é recomendável restringir a orientação do aplicativo, por exemplo, se um usuário deseja usá-lo na orientação paisagem, ele apenas vira o dispositivo e os sensores fazem o trabalho, mas quando um o desenvolvedor restringe a orientação da tela, mesmo quando o sensor de rotação funciona, o aplicativo permanece em um estado predefinido, de maneira a restringir os recursos do dispositivo do usuário.
O que fazer agora? Você tem duas opções., Primeiro é ignorar o erro, pois não causará nenhuma falha de compilação, mesmo fazendo o mesmo e a geração apk / aab é como de costume Outra opção é fornecer layouts de paisagem ou lidar com a rotação como em alguns aplicativos que reconhecem se a orientação é alterada, eles solicitarão que o usuário altere a orientação, pois o aplicativo não é suportado nessa orientação
Pode mudar no futuro => no momento, não está afetando nosso processo de compilação, mas pode mudar no futuro
fonte
No Android studio 3.6.0, acho que eles querem que o usuário lide com a orientação e incentive o desenvolvedor a usar coisas do ViewModel . Deixe-me explicar a screenOrientation em detalhes
android:screenOrientation="portrait"
lhe dará erro, você deve especificar
android:screenOrientation="fullSensor" or android:screenOrientation="unspecified"
fullSensor Significa que você está ligado no "Desligar" ou não, isso mudará a orientação com base na movimentação do telefone
não especificado Significa que se você estiver com o botão Girar desativado, ele permanecerá apenas nessa orientação e, caso contrário, mudará a orientação com base na movimentação do telefone.
fonte
fonte
Eu usei o procedimento abaixo. Funciona perfeitamente para mim. No Android studio 3.6.0, acho que eles querem que o usuário lide com a orientação e incentive o desenvolvedor a usar coisas do ViewModel. Use o procedimento abaixo para ignorar isso.
Adicionar em primeiro lugar:
na etiqueta do manifesto.
Em segundo lugar, adicione
na tag do aplicativo. Feliz codificação.
fonte
Eu encontrei 2 maneira de resolver este problema
Primeiro,
Segundo, `
fonte
Adicione a seguinte linha após
android:screenOrientation="portrait"
Depois clique em Alt+Enter
fonte
Eu enfrentei esse problema. Na minha exigência, algumas atividades suportam as orientações e os restos permanecerão em retrato. Nesse caso, resolvi com as seguintes etapas:
Caso 1: - Para bloquear a orientação
Etapa 1: adicione a seguinte tag de aplicativo da linha no AndroidManifest.xml
Etapa 2: se você deseja bloquear a orientação da tela em retrato ou paisagem, adicione a seguinte linha na tag de atividade
Caso 2: - Suponha que você queira permitir orientação em determinada atividade e tenha um design específico para paisagem
Etapa 1: Remover o valor de Orientação nas configurações e remover a orientação da tela, se existir, da tag de atividade, e minha sugestão pessoal usará (LifecycleObserver) em Activity para sem perder valores ao alterar a orientação.
É assim que resolvo esse problema. Espero que ajude, obrigado e feliz codificação.
fonte
Experimente esta solução:
Espero que isto ajude!
fonte
você pode usar este código:
fonte
Tente colocar o seguinte na tag de atividade
fonte