Comment le configurer pour que l'application s'exécute en mode portrait uniquement? Je souhaite que le mode paysage soit désactivé pendant l'exécution de l'application. Comment le faire par programme?
201
Vous pouvez spécifier android:screenOrientation="portrait"
pour chaque activité dans votre fichier manifest.xml. Vous ne pouvez pas spécifier cette option sur la application
balise.
Une autre option est de le faire par programme, par exemple dans une Activity
classe de base:
@Override
public void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
La dernière option est de le faire avec des écouteurs de cycle de vie d'activité qui ne sont disponibles que depuis Android 4.0 (API 14+). Tout se passe dans une Application
classe personnalisée :
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleAdapter() {
@Override
public void onActivityCreated(Activity a, Bundle savedInstanceState) {
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
}
ActivityLifecycleAdapter
est juste une classe auxiliaire que vous devrez créer et qui sera une implémentation vide de ActivityLifecycleCallbacks
(vous n'avez donc pas à remplacer toutes les méthodes de cette interface lorsque vous en avez simplement besoin).
Oui, vous pouvez le faire à la fois par programme et pour toutes vos activités en créant une activité abstraite que toutes vos activités étendent.
Cette activité abstraite peut également être utilisée pour un menu global.
la source
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
devrait être la meilleure réponse car il est destiné à laisser l'appareil dans l'état par défaut car certains appareils n'ont pas d'orientation Portrait. Cependant, «nosensor» ne fonctionne PAS pour moi, donc la réponse de @ arcone me correspond.Vous pouvez le faire pour l'ensemble de votre application sans avoir à faire en sorte que toutes vos activités étendent une classe de base commune.
L'astuce consiste d'abord à vous assurer d'inclure une
Application
sous-classe dans votre projet. Dans sononCreate()
, appelé lors du premier démarrage de votre application, vous enregistrez unActivityLifecycleCallbacks
objet (niveau API 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 faire appel
setRequestedOrientation()
à l'activité nouvellement créée.la source
Vous pouvez définir cela dans votre fichier manifeste.
et vous pouvez également y parvenir en écrivant le code dans votre fichier de classe comme:
la source
Ajoutez android: screenOrientation = "portrait" à l'activité dans AndroidManifest.xml. Par exemple:
la source
Utilisation:
Écrivez simplement cette ligne dans le fichier manifeste de votre application dans chaque activité que vous souhaitez afficher en mode portrait uniquement.
la source
Écrivez ceci dans votre fichier manifeste, pour chaque activité:
la source
À partir du guide du développeur Android:
Ainsi, dans le fichier AndroidManifest.xml, nous pouvons mettre:
la source
L'ajout de
<preference name="orientation" value="portrait" />
sous<widget>
dans mon config.xml a fonctionné pour moi.(Les autres solutions n'ont pas fonctionné sur mon appareil, ont été écrasées pendant la construction ou ont donné des erreurs de dépréciation pendant le processus de construction.)
la source
dans le fichier manifeste quelle activité vous souhaitez utiliser dans "portrait", vous devez écrire ce code dans la balise d'activité
comme ça
mais si vous voulez un écran en paysage, utilisez ce code comme celui-ci
la source
la source
Si quelqu'un se demandait comment faire cela pour l'ensemble de votre application sans avoir à faire en sorte que toutes vos activités étendent une classe de base commune dans Kotlin , consultez l'exemple ci-dessous:
puis vous devez ajouter votre classe de base commune dans AndroidManifest comme ceci:
la source
Vous pouvez le faire de deux manières.
android:screenOrientation="portrait"
votre fichier manifeste à l'activité correspondantesetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
à votre activité dans la méthode `onCreate ()la source
Semblable à la réponse de Graham Borland ... mais il semble que vous n'ayez pas à créer de classe d'application si vous ne voulez pas ... créez simplement une activité de base dans votre projet
Et étendez cette classe au lieu d'AppCompatActivity où vous souhaitez utiliser le mode Potrait
la source
Pour les utilisateurs de Xamarin:
Si vous étendez toutes vos activités à un
BaseActivity
simple ajout:Cela résoudra le problème. Si vous souhaitez qu'une activité particulière soit en paysage, remplacez-la
OnActivityCreated
. Comme:la source
Dans votre manifeste, tapez ceci:
la source