Question

Je veux permettre d'utiliser une activité dans le paysage / portrait. L'activité commence par la disposition de l'orientation actuelle (cela signifie avant de démarrer l'activité). Après cela, il doit s'y tenir et ne pas réagir au changement d'orientation.

J'ai essayé de mettre

android:configChanges="orientation" 

dans le manifeste de l'activité, et dominant

@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
}

Pour ne rien faire (essayé de commenter le super appel aussi, mais cela mène à l'exception) mais cela n'a pas l'effet désactivant le changement de rotation - le changement est traité et la mise en page reconstruite, elle n'utilise tout simplement pas la bonne.

Et je ne peux pas utiliser

android:screenOrientation

Parce qu'il semble que je dois spécifier un seul mode pour toujours, et ce n'est pas ce dont j'ai besoin non plus. Et de toute façon, si je spécifie quelque chose là-bas, l'activité est reconstruite lors de la rotation. Éprouvé avec

android:screenOrientation="nosensor"

ça ne fait rien

Ici, il y a un verrou d'orientation actuelle avec le code http://www.samcoles.co.uk/mobile/android-lock-and-unlock-screen-orientation/

Mais il réalise le même effet que la spécification de l'orientation dans XML (maintient la disposition mais reconstruit l'activité). C'est un peu plus proche de ce que je veux (garde l'orientation du début), mais reconstruit l'activité et je ne veux pas qu'elle réagisse du tout.

Était-ce utile?

La solution

Android: configchanges = "orientation" ne fonctionne pas du tout sur l'émulateur, mais il fonctionne bien sur les appareils.

Autres conseils

Essayer

@Override
public void onConfigurationChanged(Configuration newConfig) {
    newConfig.orientation = getResources().getConfiguration().orientation;
    super.onConfigurationChanged(newConfig);
}

Ajoutez ceci à onCreate

if (this.getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}
        else {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top