Duplication possible:
Comment désactiver le changement d’orientation dans Android?
J’écris une application Android qui utilise des tabs avec des contenus différents (activités). Dans l’une de ces activités, je voudrais verrouiller l’orientation de l’écran sur le mode “Paysage”, mais dans les autres activités, je souhaite l’orientation normale (en fonction du capteur).
Ce que je fais maintenant c’est que j’appelle
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
lorsque je passe en mode paysage, et
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
quand je reviens aux autres activités. Cependant, cela ne semble pas fonctionner, toute l’application se bloque. Quelle est l’approche normale à ce problème?
Dans le manifeste, vous pouvez définir l’écran de l’écran sur paysage. Cela ressemblerait à quelque chose dans le XML:
...
Où MyActivity
est celui que vous souhaitez conserver dans le paysage.
La ligne android:configChanges=...
empêche l’ onResume()
, onPause()
lors de la rotation de l’écran. Sans cette ligne, la rotation restra telle que vous l’avez demandée, mais les appels seront toujours effectués.
Remarque: keyboardHidden
et orientation
sont requirejs pour
J’avais un problème similaire.
Quand je suis entré
Dans le fichier manifeste, cette activité était affichée dans le paysage. Cependant, lorsque je suis revenu aux activités précédentes, ils étaient affichés dans lanscape même s’ils étaient mis en portrait. Cependant en ajoutant
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
immédiatement après que la section OnCreate de l’activité cible ait résolu le problème. Donc, j’utilise maintenant les deux méthodes.
dans le fichier manifeste Android de votre projet, trouvez la déclaration d’activité dont vous souhaitez fixer l’orientation et ajoutez le morceau de code suivant,
android:screenOrientation="landscape"
pour l’orientation paysage et portrait, ajoutez le code suivant,
android:screenOrientation="portrait"