Android макет Земли не работает
Я смотрел на проблемы в 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, scrollbar ...) не работает должным образом.
вы можете мне помочь, пожалуйста?
4 ответов
удалить "ориентацию" из android:configChanges в файле манифеста. и поместите XML-файл ландшафтного макета в папку layout-land.
наконец, мое решение такое:
AndroidManifest.xml-файл:
<activity
android:name="activity.name"
android:configChanges="orientation|keyboardHidden|screenSize"
>
и в действии реализуем метод onConfigurationChanged (конфигурация 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 () программно выполните макеты.
Проверьте эмулятор, если вы используете Android Emulator 4.4, у него есть какая-то ошибка в его ориентации. У меня была такая же проблема поменяли мой эмулятор на 4.0.3 и все работало нормально. Посетите здесь для более подробной информации сайт
У меня была эта проблема, и после долгой отладки нашел виновника в сборке.файл gradle. Android studio добавила строку
sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/layout-land'] } }
пока я возился, пытаясь создать макет-землю вручную. Я удалил эту строку и нормальная функция возвращается.