Comment puis-je désactiver le mode paysage pour certaines des vues de mon application Android?
android
android-manifest
android-orientation
lostInTransit
la source
la source
Réponses:
Ajoutez
android:screenOrientation="portrait"
à l'activité dans AndroidManifest.xml. Par exemple:EDIT: Puisque c'est devenu une réponse 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 portrait forcé:
retainInstance
fragments.La plupart des applications doivent donc laisser les capteurs, le logiciel et la configuration physique du téléphone décider eux-mêmes de la manière dont l'utilisateur souhaite interagir avec votre application. Quelques cas auxquels vous voudrez peut-être penser, cependant, si vous n'êtes pas satisfait du comportement d'
sensor
orientation par défaut 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 simplement taper le clavier logiciel paysage sur leurs téléphones, et de nombreux utilisateurs de tablettes lisent en portrait - et vous devez les laisser).sensorPortrait
peut être mieux queportrait
pour Android 2.3+; cela permet un portrait à l'envers, ce qui est assez courant dans l'utilisation de la tablette.la source
Je n'étais pas au courant du
AndroidManifest.xml
changement de fichier avant de lire ce post, donc dans mes applications, je l'ai utilisé à la place:la source
Ajoutez ceci
android:screenOrientation="portrait"
dans votre fichier manifeste où vous déclarez votre activité comme ceciSi vous voulez faire en utilisant du code java, essayez
avant d'appeler la
setContentView
méthode pour votre activité enonCreate()
.J'espère que cette aide et facilement compréhensible pour tous ...
la source
Beaucoup de réponses suggèrent ici d'utiliser
"portrait"
dans votre fichier AndroidManifest.xml. Cela peut sembler être une bonne solution - mais comme indiqué dans la documentation, vous distinguez les périphériques qui ne peuvent avoir qu'un paysage. Vous forcez également certains appareils (qui fonctionnent mieux en paysage) à passer en mode portrait, sans obtenir l'orientation appropriée.Ma suggestion est d'utiliser à la
"nosensor"
place. Cela laissera l'appareil utiliser son orientation préférée par défaut, ne bloquera aucun achat / téléchargement sur Google Play et garantira que le capteur ne gâche pas votre jeu (NDK, dans mon cas).la source
Si vous souhaitez des paramètres utilisateur,
alors je recommanderais
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Vous pouvez modifier les paramètres à partir d'un menu de paramètres.
J'en ai besoin parce que mes minuteries doivent correspondre à ce qui est à l'écran, et tourner l'écran détruira l'activité en cours.
la source
Ajoutez simplement Like this Line dans votre manifeste
la source
Vous pouvez le faire pour l'ensemble de votre application sans avoir à étendre toutes vos activités à une classe de base commune.
L'astuce consiste d'abord à vous assurer d'inclure une sous-classe d'application dans votre projet. Dans son onCreate (), appelé au premier démarrage de votre application, vous enregistrez un objet ActivityLifecycleCallbacks (API niveau 14+) pour recevoir des notifications d'événements de cycle de vie d'activité.
Cela vous donne la possibilité d'exécuter votre propre code chaque fois qu'une activité dans votre application est démarrée (ou arrêtée, ou reprise, ou autre). À ce stade, vous pouvez appeler setRequestedOrientation () sur l'activité nouvellement créée.
Et n'oubliez pas d'ajouter app: name = ". MyApp" dans votre fichier manifeste.
la source
Utilisez-le dans onCreate () de l'activité
la source
Vous devez changer
android:screenOrientation="sensorPortrait"
dans AndroidManifest.xmlla source
Ajoutez simplement cet attribut dans votre balise d'activité.
la source
Si vous ne voulez pas passer par les tracas de l'ajout d'orientation dans chaque entrée manifeste d'activité, créez une classe BaseActivity (hérite de 'Activity' ou 'AppCompatActivity') qui sera héritée par chaque activité de votre application au lieu de 'Activity 'ou' AppCompatActivity 'et ajoutez simplement le code suivant dans votre BaseActivity:
la source
Ajoutez
android:screenOrientation="portrait"
à l'activité que vous souhaitez désactiver le mode paysage.la source
Si vous souhaitez désactiver
Landscape mode for your android app
(ou une seule activité), il vous suffit d'ajouter,android:screenOrientation="portrait"
à la balise d'activité dans leAndroidManifest.xml
fichier.Comme:
Une autre façon, l'approche programmatique.
Si vous voulez le faire par programme, c'est-à-dire. en utilisant du code Java. Vous pouvez le faire en ajoutant le code ci-dessous dans la classe Java de l'activité que vous ne souhaitez pas afficher en mode paysage.
J'espère que cela vous aide. Pour plus de détails, vous pouvez visiter ici entrer la description du lien ici
la source
android:screenOrientation="nosensor">
Comment changer l'orientation dans une partie de la vue
Au lieu de verrouiller l'orientation de toute l'activité, vous pouvez utiliser cette classe pour verrouiller dynamiquement l'orientation de n'importe laquelle de vos vues de manière pragmatique: -
Faites votre paysage
Faites votre portrait
Déverrouiller l' orientation
Classe d'utilisation d'orientation
la source
utilisation
la source
Vous devez définir l'orientation de chaque activité.
la source
ajouter une classe à l'intérieur de la méthode oncreate ()
la source
Si vous utilisez Xamarin C #, certaines de ces solutions ne fonctionneront pas. Voici la solution que j'ai trouvée pour fonctionner.
La classe ci-dessus fonctionne bien, comme les autres solutions, elle n'est pas non plus applicable à l'échelle mondiale et doit être placée dans chaque en-tête d'activité.
la source
Vous pouvez forcer votre activité particulière à toujours rester en mode portrait en écrivant ceci dans votre manifest.xml
Vous pouvez également forcer votre activité à rester en mode postrait en écrivant la ligne suivante dans la méthode onCreate () de votre activité
la source
la source
Ajoutez ci-dessous félicitations pour votre projet,
puis vous utilisez une classe manifeste comme React_Native (votre dossier de projet) / android / app / src / main / AndroidManifest.xml
Merci!
la source
Dans le
<apphome>/platform/android
répertoire crééAndroidManifest.xml
(en le copiant à partir du répertoire généré). Ajoutez ensuiteandroid:screenOrientation=
"portrait
" à TOUS les éléments d'activité.la source
nous pouvons restreindre l'activité en mode portrait ou paysage en utilisant l'attribut ou android: screenOrientation.
si nous avons plus d'une activité dans mon programme, vous avez la liberté de restreindre n'importe quelle activité dans n'importe quel mode et cela n'affecte jamais les autres dont vous ne voulez pas.
la source
Soit en classe manifeste.
ou par programme
Remarque: vous devez appeler cette
setContentView
méthode avant pour votre activité dansonCreate()
.la source
Ajouter
android:screenOrientation="portrait"
dans AndroidManifest.xml fichier.Par exemple :
la source
Dans l'espoir d'aider quelqu'un d'autre, l'attribut suivant sur l'activité dans AndroidManifest.xml est tout ce dont vous avez besoin:
android: configChanges = "orientation"
Donc, nœud d'activité complet:
la source
Dans kotlin, la même chose peut être programmée en utilisant ci-dessous
la source
Cela a fonctionné pour moi, essayez d'ajouter ce code dans le fichier AndroidManifest
la source
Mettez-le dans votre manifeste.
L'orientation sera portrait, mais si le téléphone de l'utilisateur est à l'envers, il indique également la bonne façon. (Votre écran pivotera donc de 180 degrés).
Le système ignore cet attribut si l'activité s'exécute en mode multi-fenêtres .
la source
si votre activité est liée au premier état d'orientation de l'appareil, récupérez l'orientation actuelle de l'appareil dans la
onCreate
méthode, puis corrigez-la pour toujours:la source