Портрет, пейзаж в приложении для Android

#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