Orientation de l'écran de verrouillage (Android) [dupliquer]
Double Possible:
Comment désactiver le changement d'orientation dans Android?
j'écris une application android qui utilise des onglets avec différents contenus (activités). Dans l'une de ces activités, je voudrais verrouiller l'orientation de l'écran de "Paysage"-mode, mais dans les autres activités, je veux l'orientation normale (selon le capteur).
ce que je fais maintenant c'est que j'appelle
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
quand je passe en mode paysage, et
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
quand je reviens aux autres activités. Toutefois, cela ne semble pas fonctionner, toute l'application est verrouillée. Quelle est l'approche normale de ce problème?
3 réponses
dans le Manifeste, vous pouvez définir l'orientation de l'écran au paysage. Cela ressemblerait à ceci dans le XML:
<activity android:name="MyActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize">
...
</activity>
Où MyActivity
est celui que vous voulez rester dans le paysage.
la ligne android:configChanges=...
empêche onResume()
, onPause()
d'être appelée lorsque l'écran est tourné. Sans cette ligne, la rotation va rester comme vous l'avez demandé, mais les appels seront encore effectués.
Note: keyboardHidden
et orientation
sont nécessaires pour < Android 3.2 (niveau API 13), et les trois options sont nécessaires 3.2 ou plus, pas seulement orientation
.
j'ai eu un problème similaire.
quand j'ai entré
<activity android:name="MyActivity" android:screenOrientation="landscape"></activity>
dans le fichier manifest, cela a provoqué l'affichage de cette activité dans landscape. Cependant quand je retournai aux activités précédentes elles s'affichaient dans lanscape même si elles étaient mises en portrait. Toutefois, en ajoutant
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
immédiatement après la section Oncrée de l'activité cible a résolu le problème. Donc j'utilise maintenant les deux méthodes.
dans le fichier manifeste Android de votre projet, trouver la déclaration d'activité de dont vous voulez fixer l'orientation et ajouter le morceau de code suivant,
android:screenOrientation="landscape"
pour l'orientation paysagère et pour le portrait ajouter le code suivant,
android:screenOrientation="portrait"