#android #android-layout #android-linearlayout
#Android #android-макет #android-linearlayout
Вопрос:
Я разрабатываю с LinearLayout
, который работает для портретной ориентации, но альбомная ориентация организована должным образом. Я не использую позиции x, y. Если я что-то изменяю в xml, это влияет на дизайн — как мне создать как портретную, так и альбомную ориентацию?
Ответ №1:
Вы можете указать папку layout-land, в которую будут помещены все ваши альбомные макеты (дублируйте их, но с небольшими отличиями, чтобы они отображались должным образом в соответствующей ориентации). Чтобы избежать этого, вам следует работать с RelativeLayouts. Но если уже слишком поздно, и вы не хотите все менять, вы можете создать указанную папку и внести соответствующие изменения в макет.
Таким образом, у вас будет
layout/activity.xml
и a
layout-land/activity.xml
Если ваше приложение большое, вносить каждое изменение два раза может стать проблемой, но это не так уж плохо.
Не рекомендуется, но вы также можете избежать изменения ориентации, поддерживая в своем приложении только книжную ориентацию: тогда вам придется указать «android: screenOrientation =»portrait»» в манифесте вашего приложения.
Комментарии:
1. спасибо, как указать, чтобы действие принимало xml для ландшафта из layout-land
2. Это выполняется системой автоматически, вам не нужно ничего делать! Вы меняете ориентацию устройства, и действие перезагружается с правильным расположением.
3. @murali_ma это произойдет само по себе … в этом смысл создания папки с таким именем. Это работает аналогично различным папкам для рисования для разной плотности экрана. @seretur Мне интересно, требуется ли для этого определенный уровень API для работы?
4. @Maximus Для разных плотностей требуется уровень 4 (1.6), но для макета -только уровень 3 (1.5)
5. @ Спасибо, что прояснили это. Тогда об этом не стоит упоминать… не уверен, что кто-то больше ориентируется на 1.5.
Ответ №2:
Вы можете определить второй XML-файл, который является макетом для альбомной версии. Этот файл должен иметь то же имя и быть помещен в папку layout-land:
т.е.
Портрет:
layout/main.xml
Пейзаж:
layout-land/main.xml