Ресурс разметки (layout)

Ресурс разметки описывает архитектуру пользовательского интерфейса явления и других компонентов.

МЕСТОПОЛОЖЕНИЕ ФАЙЛА:

res/layout/filename.xml

Имя файла используется в качестве идентификатора ресурса.

ТИП РЕСУРСА ПОСЛЕ КОМПИЛЯЦИИ:
Указатель на объект типа View или его подкласс.
ССЫЛКА НА РЕСУРС:

В Java: R.layout.filename

В XML: @[package:]layout/filename

СИНТАКСИС:

Примечание: корневым элементом может быть ViewGroup, View или <merge>. Должен существовать только один корневой элемент, содержащий атрибут xmlns:android с пространством имен android.

ЭЛЕМЕНТЫ:
<ViewGroup>

Контейнер для других элементов типа View. Существует много различных объектов ViewGroup, каждый из которых реализует разметку дочерних элементов различными способами. Это такие типы, как LinearLayout, RelativeLayout и FrameLayout.

Помните, что не все виды ViewGroup могут содержать вложенные объекты типа View. Некоторые виды ViewGroup реализуют абстрактный класс AdapterView, который определяет дочерние элементы только с помощью адаптера (интерфейс Adapter).

Атрибуты:

android:id
Уникальный идентификатор ресурса для элемента, которое вы можете использовать для ссылки на объект из программного кода.
android:layout_height
Высота группы. Обязательный атрибут. Может быть указан либо размер, либо ключевое слово (fill_parent или wrap_content). О доступных значениях читайте ниже по тексту.
layout_width
Ширина группы. Обязательный атрибут. Может быть указан либо размер, либо ключевое слово (fill_parent или wrap_content). О доступных значениях читайте ниже по тексту.

Об остальных доступных атрибутах читайте в документации к классу ViewGroup и к соответствующим классам групп (например XML атрибуты LinearLayout)

<View>

Индивидуальный компонент пользовательского интерфейса, известный также как “виджет”. Это различные объекты типа View и его наследники, например TextView, Button, CheckBox и другие.

Атрибуты:

android:id
Уникальный идентификатор ресурса для элемента, которое вы можете использовать для ссылки на объект из программного кода.
android:layout_height
Высота элемента. Обязательный атрибут. Может быть указан либо размер, либо ключевое слово (fill_parent или wrap_content). О доступных значениях читайте ниже по тексту.
layout_width
Ширина элемента. Обязательный атрибут. Может быть указан либо размер, либо ключевое слово (fill_parent или wrap_content). О доступных значениях читайте ниже по тексту.

Об остальных доступных атрибутах читайте в документации к классу View и к соответствующим классам виджетов (например XML атрибуты TextView)

<requestFocus>
Любой элемент, представляющий объект типа View может включать данный пустой элемент, чтобы получить первоначальный фокус на экране. Должен существовать только один такой элемент на весь файл разметки.
<include>

Включает другой файл разметки в текущую разметку.

Атрибуты:

layout
Ссылка на ресурс разметки. Обязательный.
android:id
Заменяет идентификатор корневого элемента подключенной разметки.
android:layout_height
Заменяет высоту корневого элемента подключенной разметки. Работает, только если одновременно установлен атрибут android:layout_width.
android:layout_width
Заменяет ширину корневого элемента подключенной разметки. Работает, только если одновременно установлен атрибут android:layout_height.

Вы можете включать в элемент <include> и другие атрибуты, которые поддерживаются корневым элементом подключенной разметки.

Внимание: если вы хотите перезаписать атрибуты разметки, используя тег <include>, вы должны указать оба атрибута android:layout_height и android:layout_width, чтобы получить желаемый эффект.

Подключить разметку можно также с использованием ViewStub. Это легковесный элемент, который не занимает пространство макета до тех пор, пока вы явно его не наполните, после чего он включает себя в файл разметки. Подробнее читайте в документе Загрузка View по требованию.

<merge>
Альтернативный корневой элемент, который не отражен в иерархии разметки. Использование <merge> удобно в случаях, когда разметка помещается в другую разметку, имеющую объект для включения в него элемента <merge>. Это особенно полезно, когда текущей разметке не требуется контейнер ViewGroup и вы планируете включить ее в другой файл с помощью элемента <include>. Подробную информацию читайте в разделе Повторное использование разметки с использованием <include>.

Возможные значения android:id

В качестве идентификатора вы обычно будет использовать строку вида "@+id/name". Символ плюс “+” указывает, что данный идентификатор является новым и для него будет создана константа в класса R.java, если она еще не существует. Например:

nameTextBox это идентификатор данного элемента. Вы можете ссылаться на него из кода следующим образом:

Данный код вернет объект типа TextView.

Однако, если идентификатор элемента уже объявлен, вы можете исключить знак “+” из его значения.

Возможные значения для android:layout_height и android:layout_width

Высота и ширина может быть задана с использованием единиц измерений, поддерживаемых Android (px,dp,sp,pt,in,mm) или с помощью следующих ключевых слов:

Значение Описание
match_parent Растянуть на весь родительский элемент. Добавлено в API8 для замены fill_parent.
fill_parent Растянуть на весь родительский элемент.
wrap_content Растянуть до размера, необходимого, чтобы уместить содержимое элемента.

Собственные визуальные элементы

Вы можете создавать собственные визуальные элементы типа View или ViewGroup и использовать из в разметке точно также как и стандартные. Подробнее об этом читайте в разделе Пользовательские компоненты.

ПРИМЕР:

XML файл res/layout/main_activity.xml

Разметка, приведенная выше, может быть загружена в коде следующим образом:

СМОТРИТЕ ТАКЖЕ:
Виды разметки

Добавить комментарий