2016-11-08 1 views
0

J'ai différentes dispositions pour différentes orientations d'écran dans mon application. Les dispositions sont enregistrées dans les dossiers layout-land et layout-port. Lorsque je démarre mon application Android, choisissez la bonne orientation pour la première activité (Loadscreen dans mon cas) mais lorsque je change l'orientation de mon téléphone après avoir démarré la première activité, Android ne passe pas à la disposition de l'autre dossier d'orientation. Comment puis-je m'assurer que la bonne mise en page est sélectionnée si je change d'orientation pendant l'exécution de l'activité? Y at-il une méthode OnOrientationChanged ou quelque chose comme ça?Comment puis-je m'assurer que la bonne mise en page du bon dossier de mise en page est choisie lorsque je change d'orientation pendant l'exécution de l'activité?

<?xml version="1.0" encoding="utf-8"?> 
<manifest 
xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.ncss.tyfby"> 

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".Feeling" 
     android:configChanges="keyboardHidden|orientation|screenSize"> 
    </activity> 
    <receiver android:name=".SampleBootReceiver" 
     android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED"></action> 
     </intent-filter> 
    </receiver> 
    <activity 
     android:name=".Profile" 
     android:configChanges="keyboardHidden|orientation|screenSize"> 
    </activity> 
    <activity 
     android:name=".Victorios" 
     android:configChanges="keyboardHidden|orientation|screenSize"> 
    </activity> 
    <activity 
     android:name=".Breath" 
     android:configChanges="keyboardHidden|orientation|screenSize"> 
    </activity> 
    <activity 
     android:name=".HighFive" 
     android:configChanges="keyboardHidden|orientation|screenSize" 
     android:windowSoftInputMode="adjustResize"> 
    </activity> 
    <activity 
    android:name=".Settings" 
    android:configChanges="keyboardHidden|orientation|screenSize"> 
    </activity> 

    <activity 
     android:name=".Loadscreen" 
     android:configChanges="keyboardHidden|orientation|screenSize"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 
+0

Utilisez-vous Android Studio pour créer des mises en page? –

+0

pouvez-vous poster votre manifest.xml? –

+0

Oui, j'utilise Android Studio pour créer des mises en page. J'ai édité la réponse le manifeste devrait être là maintenant –

Répondre

1

Supprimer le

android:configChanges="keyboardHidden|orientation|screenSize"> 

Le comportement par défaut d'Android est de créer un nouvel objet et gonfler les nouveaux fichiers de mise en page lorsque des changements d'orientation, mais cette ligne de code empêche le redémarrage de votre activité lorsque des changements d'orientation et donc la disposition dans layout-land sera ignorée.Lire https://developer.android.com/guide/topics/resources/runtime-changes.html