J'essaie de forcer le mode "portrait" pour mon application car mon application n'est absolument pas conçue pour le mode "paysage".
Après avoir lu certains forums, j'ai ajouté ces lignes dans mon fichier manifeste:
<application
android:debuggable="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:screenOrientation="portrait">
Mais cela ne fonctionne pas sur mon appareil (HTC Desire). Il passe de "portrait" à "paysage", ignorant les lignes du fichier manifeste.
Après avoir lu plus de forums, j'ai essayé d'ajouter ceci dans mon fichier manifeste:
<application
android:debuggable="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:configChanges="orientation"
android:screenOrientation="portrait">
et cette fonction dans ma classe d'activité:
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Mais encore une fois, pas de chance.
Notez que
est ajouté dans le fichier manifeste - où l'activité est définie.
la source
Je pense que
android:screenOrientation="portrait"
peut être utilisé pour des activités individuelles. Utilisez donc cet attribut dans une<activity>
balise comme:la source
Si vous avez beaucoup d'activités comme la mienne, dans votre application Ou si vous ne voulez pas entrer le code de chaque balise d'activité dans le manifeste, vous pouvez le faire.
dans votre classe Application Base, vous obtiendrez un rappel de cycle de vie
Donc, fondamentalement, ce qui se passe pour chaque activité lors de la création de la création sur la classe d'application déclenchée ici est le code ..
J'espère que ça aide.
la source
Réglez le mode Portrait ou Paysage , ajoutez respectivement des lignes.
Importer sous la ligne:
Ajouter la ligne ci-dessous juste au-dessus
setContentView(R.layout.activity_main);
Pour le portrait :
Pour l' aménagement paysager :
Cela fonctionnera certainement.
la source
Selon la documentation d'Android, vous devez également inclure souvent
screenSize
un éventuel changement de configuration.En outre, si vous tous d' inclure la valeur
keyboardHidden
dans vos exemples, vous ne devriez pas alors considérer aussilocale
,mcc
,fontScale
,keyboard
et d' autres? ..la source
J'avais cette ligne dans mon AndroidManifest.xml
Ce que j'ai changé en (juste ajouté
android:screenOrientation="portrait"
)Cela a arrangé les choses pour moi.
la source
Quelque chose à compléter: j'ai récemment mis à jour une application, la précédente fonctionnait en mode paysage et portrait, et je veux que la version mise à jour fonctionne en mode portrait, j'ai donc ajouté
à l'activité correspondante, et il s'est juste écrasé lorsque j'ai testé la mise à jour. J'ai ensuite ajouté
aussi, et ça marche.
la source
Je pense que vous souhaitez ajouter
android:configChanges="orientation|keyboardHidden"
à votre activité? Sinon, l'activité est redémarrée lors du changement de configuration. LeonConfigurationChanged
ne serait pas appelé alors, seul leonCreate
la source
Si vous souhaitez prendre en charge différentes orientations
debug
etrelease
versions, écrivez-le (voir https://developer.android.com/studio/build/gradle-tips#share-properties-with-the-manifest ).Dans
build.gradle
votreapp
dossier, écrivez:Ensuite,
AndroidManifest
vous pouvez utiliser cette variable "orientation" dans n'importe quelActivity
:Vous pouvez ajouter
android:configChanges
:manifestPlaceholders = [configChanges: "", orientation: "fullSensor"]
en débogage etmanifestPlaceholders = [configChanges: "keyboardHidden|orientation|screenSize", orientation: "portrait"]
en version,la source
Réponse courte: ne le faites pas.
Reconcevoir votre application afin qu'elle puisse fonctionner en mode portrait et paysage. Il n'y a rien de tel qu'une interface utilisateur qui ne peut pas être conçue pour fonctionner à la fois en mode portrait et paysage; seuls les développeurs paresseux ou sans imagination.
La raison en est assez simple. Vous souhaitez que votre application soit utilisable par un public aussi large que possible sur autant d'appareils différents que possible. En forçant une orientation d'écran particulière, vous empêchez votre application de s'exécuter (de manière utilisable) sur des appareils qui ne prennent pas en charge cette orientation et vous frustrez et aliénez les clients potentiels qui préfèrent une orientation différente.
Exemple: vous concevez votre application pour forcer le mode portrait. Un client télécharge l'application sur un appareil 2 en 1 qu'il utilise principalement en mode paysage.
Conséquence 1: votre application est inutilisable ou votre client est obligé de déconnecter son appareil, de le faire pivoter et de l'utiliser dans une orientation qui ne lui est pas familière ou confortable.
Conséquence 2: le client est frustré par la conception non intuitive de votre application et trouve une alternative ou abandonne complètement l'application.
Je me bats avec ça avec une application en ce moment et en tant que consommateur et développeur, je déteste ça. Aussi utile que soit l'application, aussi fantastique que les fonctionnalités qu'elle offre, je déteste absolument l'application car elle me force à utiliser une orientation qui est contraire à toutes les autres façons dont j'utilise mon appareil.
Vous ne voulez pas que vos clients détestent votre application.
Je sais que cela ne répond pas directement à la question, donc je veux l'expliquer un peu plus en détail pour ceux qui sont curieux.
Les développeurs ont tendance à être vraiment bons en écriture de code et vraiment mauvais en conception. Cette question, même si elle ressemble à une question de code et que le demandeur a certainement l'impression que c'est une question de code, est vraiment une question de conception.
La question est vraiment "Dois-je verrouiller l'orientation de l'écran dans mon application?" Le demandeur a choisi de concevoir l'interface utilisateur pour qu'elle fonctionne et ne soit belle qu'en mode portrait. Je soupçonne que c'était pour gagner du temps de développement ou parce que le flux de travail de l'application est particulièrement propice à une mise en page portrait (commun pour les jeux mobiles). Mais ces raisons négligent tous les véritables facteurs importants qui motivent une conception appropriée.
Engagement du client - vous voulez que vos clients se sentent attirés dans votre application, pas forcés d'en sortir. L'application doit passer en douceur de ce que faisait votre client avant d'ouvrir votre application. (C'est la raison pour laquelle la plupart des plates-formes ont des principes de conception cohérents, de sorte que la plupart des applications se ressemblent plus ou moins bien qu'elles ne le soient pas.)
Réponse du client - vous voulez que vos clients réagissent positivement à votre application. Ils devraient aimer l'utiliser. Même si c'est une application de paie pour le travail, cela devrait être un plaisir pour eux de l'ouvrir et de pointer. L'application devrait faire gagner du temps à vos clients et réduire la frustration face aux alternatives. (Les applications qui ennuient les utilisateurs créent du ressentiment contre votre application, ce qui se transforme en ressentiment envers votre marque.)
Conversion client - vous voulez que vos clients puissent passer rapidement et facilement de la navigation à l'interaction. C'est l'objectif ultime de toute application: convertir les impressions en revenus. (Les applications qui ne génèrent pas de revenus sont une perte de temps à créer, d'un point de vue commercial.)
Une interface utilisateur mal conçue réduit l'engagement et la réponse des clients, ce qui se traduit finalement par une baisse des revenus. Dans un monde axé sur le mobile (et en particulier sur le sujet des modes d'affichage portrait / paysage), cela explique pourquoi la conception Web réactive est si importante. Walmart Canada a introduit la conception adaptative sur son site Web en novembre 2013 et a enregistré une augmentation de 20% de la conversion des clients. O'Neill Clothing a mis en œuvre une conception Web réactive et les revenus des clients utilisant des appareils iOS ont augmenté de 101,25% et 591,42% des clients utilisant des appareils Android .
Les développeurs ont également tendance à se concentrer attentivement sur la mise en œuvre d'une solution particulière (telle que le verrouillage de l'orientation de l'affichage), et la plupart des développeurs de ce site seront très heureux d'aider à la mise en œuvre de cette solution, sans se demander si c'est la meilleure solution. solution au problème.
Verrouiller l'orientation de votre écran est l'équivalent de la conception de l'interface utilisateur de la mise en œuvre d'une boucle do-while. Êtes-vous vraiment sûr de vouloir procéder de cette façon ou existe-t-il une meilleure alternative?
Ne forcez pas votre application dans un seul mode d'affichage. Investissez du temps et des efforts supplémentaires pour le rendre réactif.
la source