Est-il possible de faire une demande d'ignorer complètement l'orientation de l'écran de changement?
Réponses
Trop de publicités?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é.
Modifier 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 seule fonction au sein de l'Activité souhaitée.
Il suffit d'ajouter la fonction ci-dessous pour votre Activité de la classe.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
C'est l'implémentation par défaut si vous utilisez l' Source->Override/Implement Methods
option de menu.
Ça y est! Maintenant, votre orientation sera toujours maintenu.
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é):
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Une fois que vous faites cet appel, votre application va rester dans le paysage ou portrait). 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 à la configuration soit en AndroidManifest.xml
ou avec l' setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
vous allez rencontrer des problèmes avec les tablettes. 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 cette setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
de la valeur. Je parle plus à ce sujet dans le Débordement de Pile question Android naturel capteur d'aide à l'orientation.
Voici le xml:
<activity
android:name=".MyActivity"
android:screenOrientation="nosensor"
android:configChanges="orientation|keyboardHidden|keyboard"/>
Vous pouvez définir votre activité en AndroidManifest.xml
fichier comme ceci:
<activity
android:name=".MyActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|keyboard"/>`
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.