Layout inicial do Android com orientação atual, depois desative a rotação
-
29-10-2019 - |
Pergunta
Quero viabilizar a utilização de uma atividade em paisagem/retrato.A atividade começa com o layout da orientação atual (ou seja, antes de iniciar a atividade).Depois disso, terá de persistir e não reagir à mudança de orientação.
Eu tentei colocar
android:configChanges="orientation"
no manifesto da atividade e prevalecendo
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
}
Para não fazer nada (tentei comentar também a super chamada, mas isso leva à exceção), mas isso não tem o efeito desativando a mudança de rotação - a alteração é processada e o layout reconstruído, ele simplesmente não usa o correto.
E eu não posso usar
android:screenOrientation
Porque parece que preciso especificar apenas um modo para sempre, e também não é disso que preciso.E de qualquer forma, se eu especificar algo ali, a atividade será reconstruída durante a rotação.Tentei com
android:screenOrientation="nosensor"
isso não faz nada
Aqui há um bloqueio de orientação atual com código http://www.samcoles.co.uk/mobile/android-lock-and-unlock-screen-orientation/
Mas consegue o mesmo efeito que especificar a orientação em XML (mantém o layout, mas reconstrói a atividade).Está um pouco mais próximo do que desejo (mantém a orientação desde o início), mas reconstrói a atividade e não quero que ela reaja de forma alguma.
Solução
Android: Configchanges="Orientação" não funciona no emulador, mas funciona bem em dispositivos.
Outras dicas
Tentar
@Override
public void onConfigurationChanged(Configuration newConfig) {
newConfig.orientation = getResources().getConfiguration().orientation;
super.onConfigurationChanged(newConfig);
}
Adicione ao onCreate
if (this.getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}
else {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}