Comment désactiver le mode paysage pour certaines vues de mon application Android ?
Ajoutez android:screenOrientation="portrait"
à l'activité dans le fichier AndroidManifest.xml. Par exemple :
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
EDIT : Depuis que cette réponse est devenue super-populaire, je me sens très coupable car forcer le portrait est rarement la bonne solution aux problèmes auxquels il est fréquemment appliqué.
Les principales mises en garde avec le portrait forcé :
retainInstance
.La plupart des applications doivent donc laisser les capteurs du téléphone, le logiciel et la configuration physique décider eux-mêmes de la manière dont l'utilisateur souhaite interagir avec votre application. Il y a cependant quelques cas auxquels vous pouvez penser si vous n'êtes pas satisfait du comportement par défaut de l'orientation du sensor
dans votre cas d'utilisation :
nosensor
pour l'orientation. Cela force le paysage sur la plupart des tablettes et le portrait sur la plupart des téléphones, mais je ne recommanderais toujours pas cela pour la plupart des applications "normales" (certains utilisateurs aiment juste taper dans le clavier logiciel en paysage sur leurs téléphones, et beaucoup d'utilisateurs de tablettes lisent en portrait - et vous devriez les laisser faire).sensorPortrait
peut être meilleur que portrait
pour Android 2.3+ ; cela permet de faire un portrait à l'envers, ce qui est assez commun dans l'utilisation des tablettes.Je n'étais pas au courant du changement de fichier AndroidManifest.xml
avant de lire ce post, donc dans mes applications j'ai utilisé ceci à la place :
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Fixed Portrait orientation
Dans le répertoire <apphome>/platform/android
, créez AndroidManifest.xml
(en le copiant depuis celui généré).
Ajoutez ensuite android:screenOrientation=
"portrait
" ; à TOUS les éléments de l'activité.