Платформа Android Layout не работает
Я рассматривал проблемы в stackoverflow, и я пробовал все, что видел, но макет-земля не работает.
В моем коде у меня есть метод onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
И файл манифеста:
<activity
android:name="com.sde.PlayerTrack"
android:theme="@style/AppTheme"
android:configChanges="orientation|keyboardHidden|screenSize"
>
</activity>
Я также попытался удалить в записи манифеста android: configChanges, а затем загрузочную накладку макета, но компоненты, которые у меня есть (TextView, полоса прокрутки...) работают неправильно.
Можете ли вы мне помочь?
Ответы
Ответ 1
Наконец, мое решение:
Файл AndroidManifest.xml:
<activity
android:name="activity.name"
android:configChanges="orientation|keyboardHidden|screenSize"
>
И в реализации реализует метод onConfigurationChanged (Configuration newconfig):
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
createHorizontalalLayout();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
createVerticalLayout();
}
}
С createVerticalLayout() и createHorizontalLayout() программно делают макеты.
Ответ 2
Удалите orientation
из android:configChanges
в файле манифеста и поместите XML- файл альбомной компоновки в папку layout-land
.
Ответ 3
Проверьте эмулятор, если вы используете Android-эмулятор 4.4, у него есть какая-то ошибка в его ориентации. У меня была та же проблема, что и мой эмулятор сменил 4.0.3, и все сработало нормально. Посетите здесь для более подробной информации сайт
Ответ 4
У меня была эта проблема, и после того, как большая отладка обнаружила виновника в файле build.gradle. Студия Android добавила строку
sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/layout-land'] } }
пока я возился с попыткой создать макет вручную. Я удалил эту строку и нормальную функцию.