2016-11-08 2 views
0

У меня есть разные макеты для разных экранных ориентаций в моем приложении. Макеты сохраняются в папках макета-земля и макета-порт. Когда я запускаю приложение Android Android, выберите правильную ориентацию для первого действия (Loadscreen в моем случае), но когда я изменил ориентацию своего телефона после запуска первого действия Android, это не изменится на макет из другой папки ориентации. Как я могу убедиться, что правильный выбор макета выбран, если я изменяю ориентацию во время выполнения Activity? Есть ли метод OnOrientationChanged или что-то в этом роде?Как я могу убедиться, что правильный макет из правой папки макета выбран, когда я изменяю ориентацию во время работы Activity?

<?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

Вы используете Android Studio для создания макетов? –

+0

Можете ли вы опубликовать свой манифест. Xml? –

+0

Да, я использую Android Studio для создания макетов. Я отредактировал ответ, что манифест должен быть там сейчас –

ответ

1

Удалить этот

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

поведение по умолчанию андроид является создание нового объекта и надуть новые файлы макета при изменении ориентации, но эта строка кода предотвращает повторный запуск вашей деятельности при изменении ориентации и, следовательно, макет в макете будет проигнорирован. Читайте https://developer.android.com/guide/topics/resources/runtime-changes.html