Как настроить правильный интерфейс для портретного и ландшафтного режима для файлов XML в Android - PullRequest
0 голосов
/ 15 апреля 2011

Моя проблема в том, что я готовлю свой xml в портретном режиме в Android, но когда я пытаюсь запустить приложение с телефона и получить альбомный режим, мой интерфейс вылетает. Изображение становится меньше, а кнопки не появляются на экране. Я хочу, чтобы мой интерфейс был одинаковым, независимо от того, находится телефон в альбомном или портретном режиме. Как я могу решить эту проблему? Могу ли я подготовить два разных XML для одного класса, один для ландшафта, а другой для портретного режима, или есть какое-то другое решение? Спасибо

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

У вас есть два варианта здесь. Первый - добавить атрибут android: configChanges к этому действию в манифесте:

<activity android:name="the activity's class name" android:configChanges="orientation" >

Это остановит андроид от воссоздания активности, когда меняется ориентация. Вместо этого будет вызван метод onConfigurationChanged действия.

Другой вариант - создать другой макет, который будет использоваться, когда устройство находится в альбомной ориентации. Его нужно было бы назвать таким же, как макет портрета, и поместить в макет.

Возможно, есть и другие варианты, это только те, о которых я знаю.

1 голос
/ 15 апреля 2011

Вы можете легко иметь разные макеты в разных ориентациях, см. «Ориентация экрана» в Предоставление ресурсов

Все, что вам нужно сделать, это создать каталог layout-port или layout-land вres, и поместите туда альтернативный XML.

...