Comment l'orientation de l'application (paysage ou portrait) est-elle verrouillée?

J'ai essayé de geler l'orientation en utilisant:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

Bien que l'affichage reste en orientation portrait, l'activité est encore recréée. Des idées pour résoudre ceci?

Comment l'orientation de l'application peut-elle être verrouillée de sorte que l'activité ne soit pas recréée lors du changement d'orientation?

4 Solutions collect form web for “Comment l'orientation de l'application (paysage ou portrait) est-elle verrouillée?”

Tout d'abord, n'utilisez pas setRequestedOrientation() si vous pouvez l'éviter. Utilisez à la android:screenOrientation attribut android:screenOrientation dans votre élément <activity> manifeste.

Deuxièmement, vous aurez également besoin d' android:configChanges="keyboardHidden|orientation" dans votre élément de manifestation <activity> pour empêcher le cycle destroy / recreate.

Un exemple plus spécifique de la section d'activité de l'AndroidManifest.xml pour l'orientation portrait:

  <activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation|screenSize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

android:screenOrientation définit l'orientation initiale et android:configChanges annule les événements qui déclenchent les méthodes de cycle de vie correspondantes lors des changements d'écran.

Essaye ça:

1.- Réglez l'orientation de l'écran souhaitée dans votre AndroidManifest.xml

 android:screenOrientation="portrait|landscape" 

Ça devrait ressembler à ça:

  <application android:allowBackup="true" android:icon="~icon path~" android:label="~name~" android:supportsRtl="true" android:screenOrientation="portrait" android:theme="@style/AppTheme"> </application> 

2.- Ajoutez ceci à votre volet onCreate (ou où vous le souhaitez) dans votre fichier d'activité java (Exemple: "MainActivity.java"):

 super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED); 

Ça devrait ressembler à ça:

 protected void onCreate(Bundle savedInstanceState) { super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);} 

Maintenant, l'écran ne se déplacera même si la rotation de l'écran est activée dans le périphérique.

La meilleure solution consiste à utiliser l'instance enregistrée. Si vous verrouillez l'orientation de l'écran, cela signifie que vous obligez l'utilisateur à utiliser l'application en fonction des contraintes établies par vous. Donc utilisez toujours onSaveInstanceState. Lisez ce lien: http://developer.android.com/training/basics/activity-lifecycle/recreating.html

coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.