Comment faire une demande d'ignorer l'écran de changement d'orientation?
Est-il un moyen de faire une demande d'ignorer complètement l'orientation de l'écran change?
- Juste une remarque qui, apparemment, dans Android 1.5 il y a un bug. Si vous utilisez un personnalisé taille de l'écran (par exemple, 800x480, comme sur l'Apad) et la force de paysage (soit via XML ou du code), puis il sera en fait dans le portrait.
- Vous pouvez simplement appeler
Screen.lockOrientation(this)
à partir de github.com/delight-im/Android-BaseLib/blob/master/Source/src/im/... si vous souhaitez verrouiller et déverrouiller l'orientation de code (qui est plus souple)
Vous devez vous connecter pour publier un commentaire.
Il est possible, assez facilement, pour remplacer le comportement par défaut et de l'opposition à l'orientation de l'écran change lorsque le clavier est ouvert/fermé.
Modifiant le manifeste
Ouvrir le manifeste, basculez sur l'onglet Applications et sélectionnez l'Activité que vous souhaitez remplacer pour le changement d'orientation du comportement.
Dans les Attributs que vous devez modifier deux champs:
Orientation de l'écran: sélectionnez portrait ou paysage selon ce qui est souhaité. Ce sera la mise en page par défaut.
Sélectionnez les événements pour les modifications de configuration que vous souhaitez remplacer:
Dans ce cas, ils sont keyboardHidden et de l'orientation.
La modification de la mise en œuvre des Activités
Maintenant, vous avez besoin de remplacer une fonction unique au sein d'Activité désiré.
Il suffit d'ajouter la fonction ci-dessous pour votre Activité de la classe.
C'est l'implémentation par défaut si vous utilisez le
Source->Override/Implement Methods
option de menu.
Que c'est! Maintenant, votre orientation sera toujours.
Rappelez-vous que ce paramètre est par Activité - donc, vous devez répéter cette étape pour chaque Activité que vous souhaitez interdire le changement d'orientation!
(Basé sur le SDK 1.1)
Vous pouvez faire la même modification dans le code avec la ligne suivante (appelée dans une activité):
Une fois que vous faites cet appel, votre application va rester dans le paysage ou portrait) mode. Vous pouvez utiliser le même appel (avec un autre ActivityInfo enum) pour le rendre sensible à l'orientation de la tourne de nouveau.
Il y a plein DevX article sur le sujet dans Le Développement De L'Orientation-Connaissance Des Applications Android.
(AVERTISSEMENT: depuis que j'ai posté ce lien DevX a mis en place une inscription au mur).
Si vous êtes le paramètre par
AndroidManifest.xml
ou avec lasetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
vous allez rencontrer des problèmes avec comprimés. Leur naturel/orientation par défaut est le paysage.Si vous voulez vraiment ignorer complètement l'orientation de l'écran change je voudrais utiliser ce
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
valeur. Je parle plus à ce sujet dans la Pile Overflow question Android naturel capteur d'aide à l'orientation.Voici le xml:
Vous pouvez définir votre activité dans le
AndroidManifest.xml
fichier comme ceci:Dans ce cas, vous devez définir la propriété pour chaque activité. Je n'ai pas trouvé une ligne de solution pour toutes les applications.
Ajoutez à cela l'activité:
android:configChanges="orientation|screenSize"
Vous voulez lire l'orientation actuelle et à garder de cette façon tout au long de l'ensemble de l'activité de la vie, donc ce que j'ai fait est le suivant, à la fin de onCreate: