Ресурс макета
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Ресурс макета определяет архитектуру пользовательского интерфейса в Activity или компоненте пользовательского интерфейса.
- расположение файла:
-
res/layout/ filename .xml
Имя файла используется в качестве идентификатора ресурса. - тип данных скомпилированного ресурса:
- Указатель ресурса на ресурс
View (или подкласса) - ссылка на ресурс:
- В Java:
R.layout. filename
В XML: @[ package :]layout/ filename - синтаксис:
<?xml version="1.0" encoding="utf-8"?>
<ViewGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@[+][package:]id/resource_name"
android:layout_height=["dimension" | "match_parent" | "wrap_content"]
android:layout_width=["dimension" | "match_parent" | "wrap_content"]
[ViewGroup-specific attributes] >
<View
android:id="@[+][package:]id/resource_name"
android:layout_height=["dimension" | "match_parent" | "wrap_content"]
android:layout_width=["dimension" | "match_parent" | "wrap_content"]
[View-specific attributes] >
<requestFocus/>
</View>
<ViewGroup >
<View />
</ViewGroup>
<include layout="@layout/layout_resource"/>
</ViewGroup> Примечание. Корневым элементом может быть элемент ViewGroup , View или <merge> , но корневой элемент может быть только один, и он должен содержать атрибут xmlns:android с пространством имен android , как показано в предыдущем примере синтаксиса.
- элементы:
-
<ViewGroup> - Контейнер для других элементов
View . Существует множество различных типов объектов ViewGroup , и каждый из них позволяет по-разному определять расположение дочерних элементов. Различные типы объектов ViewGroup включают LinearLayout , RelativeLayout и FrameLayout . Не предполагайте, что любое производное от ViewGroup принимает вложенные представления. Некоторые группы представлений являются реализациями класса AdapterView , который определяет своих дочерних элементов только из Adapter .
Атрибуты:
-
android:id - Идентификатор ресурса . Уникальное имя ресурса для элемента, которое можно использовать для получения ссылки на
ViewGroup из вашего приложения. Дополнительные сведения см. в разделе Значение для android:id . -
android:layout_height - Измерение или ключевое слово . Необходимый . Высота группы в виде значения измерения (или ресурса измерения ) или ключевого слова (
"match_parent" или "wrap_content" ). Дополнительные сведения см. в разделе «Значения для android:layout_height» и «android:layout_width» . -
android:layout_width - Измерение или ключевое слово . Необходимый . Ширина группы в виде значения измерения (или ресурса измерения ) или ключевого слова (
"match_parent" или "wrap_content" ). Дополнительные сведения см. в разделе «Значения для android:layout_height» и «android:layout_width» .
Базовый класс ViewGroup поддерживает больше атрибутов, и многие другие поддерживаются каждой реализацией ViewGroup . Справочник по всем доступным атрибутам см. в соответствующей справочной документации для класса ViewGroup , например XML-атрибуты LinearLayout .
-
<View> - Отдельный компонент пользовательского интерфейса, обычно называемый виджетом . Различные типы объектов
View включают TextView , Button и CheckBox . Атрибуты:
-
android:id - Идентификатор ресурса . Уникальное имя ресурса для элемента, которое можно использовать для получения ссылки на
View из вашего приложения. Дополнительные сведения см. в разделе Значение для android:id . -
android:layout_height - Размер или ключевое слово . Необходимый . Высота элемента в виде значения измерения (или ресурса измерения ) или ключевого слова (
"match_parent" или "wrap_content" ). Дополнительные сведения см. в разделе «Значения для android:layout_height» и «android:layout_width» . -
android:layout_width - Размер или ключевое слово . Необходимый . Ширина элемента в виде значения измерения (или ресурса измерения ) или ключевого слова (
"match_parent" или "wrap_content" ). Дополнительные сведения см. в разделе «Значения для android:layout_height» и «android:layout_width» .
Базовый класс View поддерживает больше атрибутов, и многие другие поддерживаются каждой реализацией 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 : облегченное представление, которое не занимает пространство макета, пока вы явно не раздуете его. Когда вы это сделаете, он включает файл макета, определенный его атрибутом android:layout . Дополнительные сведения об использовании ViewStub см. в разделе Загрузка представлений по требованию .
-
<merge> - Альтернативный корневой элемент, который не отображается в иерархии макета. Использование его в качестве корневого элемента полезно, если вы знаете, что этот макет помещен в макет, который уже содержит соответствующий родительский
View , содержащий дочерние элементы элемента <merge> . Это особенно полезно, если вы планируете включить этот макет в другой файл макета с помощью <include> , и для этого макета не требуется другой контейнер ViewGroup . Дополнительные сведения об объединении макетов см. в статье Повторное использование макетов с помощью <include> .
Значение для Android:id
Для значения идентификатора обычно используется следующая синтаксическая форма: "@+id/ name " , как показано в следующем примере. Символ плюса + указывает, что это новый идентификатор ресурса, и инструмент aapt создает новое целое число ресурса в классе R.java , если оно еще не существует.
<TextView android:id="@+id/nameTextbox"/>
Имя nameTextbox теперь является идентификатором ресурса, прикрепленным к этому элементу. Затем вы можете обратиться к TextView , с которым связан идентификатор в Java:
Котлин
val textView: TextView? = findViewById(R.id.nameTextbox)
Ява
TextView textView = findViewById(R.id.nameTextbox);
Этот код возвращает объект TextView .
Однако если вы уже определили ресурс ID и он еще не используется, вы можете применить этот идентификатор к элементу View , исключив символ плюса из значения android:id .
Значения для android:layout_height и android:layout_width
Значения высоты и ширины выражаются с использованием любых единиц измерения, поддерживаемых Android (px, dp, sp, pt, дюймы, мм), или с помощью следующих ключевых слов:
| Ценить | Описание |
|---|
match_parent | Устанавливает размер, соответствующий размеру родительского элемента. Добавлен на уровне API 8 для прекращения поддержки fill_parent . |
wrap_content | Устанавливает размер только до размера, необходимого для соответствия содержимому этого элемента. |
Пользовательские элементы представления
Вы можете создавать собственные элементы View и ViewGroup и применять их к макету так же, как стандартный элемент макета. Вы также можете указать атрибуты, поддерживаемые в элементе XML. Дополнительные сведения см. в разделе Создание пользовательских компонентов представления .
- пример:
- XML-файл, сохраненный в
res/layout/main_activity.xml :<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout> Этот код приложения загружает макет Activity в методе onCreate() :
Котлин
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)
} Ява
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
} - см. также:
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[]]