Если я запустил приложение в ландшафтном режиме, то он будет использовать элемент списка ландшафтов xml. но если я начну его в портретном режиме и поверните его в альбомный режим, он будет использовать элемент списка портретов xml для обеих конфигураций. Я использую onConfigurationChanged для определения изменения ориентации, но я не уверен, как сказать ему использовать правильный XML-файл. У меня есть два xml-файла с тем же именем, но один для пейзажа. Благодарю.Android: измените расположение элементов списка при изменении ориентации?
0
A
ответ
0
Если вы пытаетесь достичь этого вы должны иметь 2 папки для макетов следует назвать
layout-land/*
другие
layout-port/*
имя ваших макетов тот же
File.xml
чем просто надуть их ОС позаботится об отдыхе.
Также см этого Android layout folders: layout, layout-port, layout-land
указанного андроид: configChanges = "ориентация" в AndroidManifest.xml. В этом случае указать снова setContentView() в в onConfigurationChanged() или удалить, что AndroidManifest.xml директива
Если хочет, чтобы продолжать использовать onconfigurationchanged(), чем просто надуть соответствующим образом.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
ОК спасибо. Я указал две разные папки, но мне пришлось открыть папку макета в поисковом устройстве, чтобы увидеть две разные папки. Затем мне пришлось удалить «android: configChanges =» ориентация | screenSize | keyboardHidden »из файла манифеста. – mjpablo23
Вы можете переключить свой вид в левом верхнем углу, если вы используете Android Studio. Если вы вручную настроите макеты, вы можете поместить их в такая же папка res. – skryshtafovych
ok получил это, спасибо – mjpablo23