2010-01-23 6 views
115

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

Можно ли также указать различные макеты для разных размеров экрана? Если да, то как это делается?

ответ

169

Создайте каталог layout-land и поместите ландшафтную версию XML-файла вашего макета в этот каталог.

+2

Означает ли это, что все действия должны определять как пейзаж, так и портрет, если я это сделаю? –

+13

Нет, если определение макета не существует, оно просто использует макет XML в стандартном каталоге макета. –

+0

в моем случае, макет-земля не работает, когда я использую, android: configChanges = "orientation | keyboardHidden | screenSize" –

58

Вы просто должны поместить его под отдельные папки с разными именами, в зависимости от ориентации и разрешения, устройство автоматически выберет правильный для его настройки экрана

Больше информации здесь:

http://developer.android.com/guide/practices/screens_support.html

в разделе «отборочные каталогов ресурсов для размера экрана и плотности»

+0

Работает только для ОС версии 1.6 или выше. Если вы хотите поддерживать 1.5, вам нужна эта ссылка: http://developer.android.com/guide/practices/screens-support-1.5.html –

+2

@Silvio Donnini - ссылки больше не имеют требуемой информации. – itsaboutcode

+2

@itsaboutcode Да, это так: спуститесь к разделу «Использование квалификаторов конфигурации» – Danation

2

Или использовать это:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:scrollbars="vertical" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent"> 

    <LinearLayout android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 

    <!-- Add your UI elements inside the inner most linear layout --> 

    </LinearLayout> 
</ScrollView> 
16

Просто напоминание:

Удалить orientation из android:configChanges атрибута для деятельности в манифесте xml файл, если вы определили его:

android:configChanges="orientation|screenLayout|screenSize" 
3

Создать новый каталог layout-land, а затем создать xml файл с таким же именем в layout-land, так как он был layout и разместите там свой контент в ландшафтном режиме.

Обратите внимание, что идентификатор содержания как в xml такой же.

14

Для любителей мышки! я говорю правая кнопка мыши на папке ресурсов и добавить новый файл ресурсы, а также из отдельных классификаторов выбрать ориентацию:

enter image description here


Но все же вы можете сделать это вручную, например, при добавлении подпапки " макет-земля»в

"Your-Project-Direction \ приложение \ SRC \ главная \ Рез"

с тех пор любой файл layout.xml под этой подпапке будет работать только в режиме альбомной Aut omatically.

Используйте «Макет-порт» для портретного режима.

 Смежные вопросы

  • Нет связанных вопросов^_^