Question

J'ai une application qui affiche une grande quantité de texte pour l'utilisateur à lire.

Je l'ai constaté que lors de la lecture en position couchée, je me ennuyé que l'écran tourne, même si la tête et l'écran sont alignés.

Je ne veux pas mettre cela en permanence en mode portrait, donc je pense que cela empêcherait une approche de réglage de

 android:screenOrientation="portrait"

dans le manifeste.

Idéalement, je voudrais activer / désactiver les changements d'orientation automatique via une page de préférences.

Quelle serait ma meilleure approche?

Était-ce utile?

La solution

Je le faire en ayant ma page de préférences écriture à la SharedPreferences pour ma demande, puis la lecture de cette valeur et appeler . setRequestedOrientation () à partir du code lorsque la vue de texte en question est chargée ou affichée.

Par exemple:

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    if (prefs.getBoolean("fix_orientation_to_portrait", false)) {
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else {
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
    }

Cela peut être soit la méthode onCreate() ou onResume(). La seule raison pour ne pas avoir dans la méthode de onCreate() est si le changement de réglage qui se passe dans cette activité, ou une activité de l'enfant qui va revenir à celui-ci quand il est fait.

Modifier

OK, si cela ne fonctionne pas (et je ne suis pas vraiment sûr que ce sera), vous pourriez peut-être essayer d'avoir deux fichiers xml de mise en page différentes - l'un avec l'ensemble de screenOrientation, et l'autre sans. Lorsque vous chargez votre activité / View, vous pouvez charger dynamiquement un ou l'autre en fonction de vos préférences enregistrées. Il de méchant pas propre, mais il devrait fonctionner.

Autres conseils

Ajoutez cette ligne dans onCreate () Fonction. Il travaille ...

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top