> For the complete documentation index, see [llms.txt](https://m-v-ponomarev98.gitbook.io/oer-mobile/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://m-v-ponomarev98.gitbook.io/oer-mobile/android/android-native/razdel-3.-polzovatelskii-interfeis/uf2.-osnovnye-atributy.md).

# УФ3. Основные атрибуты

Для организации объектов интерфейса на макете используются атрибуты с приставкой `layout_`. Основными атрибутами с такой приставкой являются высота, ширина и внешний отспут.

## ID

ID - это уникальное имя объекта, по которому к нему идет обращение. Например, в проекте из "Модуль 2. Компоненты приложения" создано 2 объекта в `MainActivity` и 1 объект в `MessageActivity`. У каждого объекта есть свое уникальное имя. При создании объекта в графическом редакторе ему присваивается id с названием объекта и каким по списку он был добавлен на экран. Например, `id=editText2` означает, что это второй объект вида `EditText`, который был добавлен на экран.

Лучше всего присваивать значение id, которое будет соответствовать их виду и задаче. Например, поле ввода ФИО вместо того, чтобы присвовить `id=editText`, лучше присвоить имя `id=editName`. На рис.1 вы можете увидеть как назначить значение ID.

![Рис. 1. Наименование ID](https://1012242269-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MO4xhIdPuIYBTJd60BA%2F-M_-l7afA9NOU1VqOQAo%2F-M_-yMW62oDb9OVoqk71%2Fimage.png?alt=media\&token=2be00659-f608-4d76-b443-1c84d10bfd0c)

## Высота и ширина

Атрибуты ширины и высоты называются `layout_width` и `layout_height`.

Задавать ширину и высоту объекта можно 3 способами:

* использовать значение `match_parent` - при использовании этого параметра объект будет растягиваться на то, значение, на которое растянут родительский элемент в иерархии. В случае с приложением, которое было создавалось в первом модуле такой объект как кнопка в `main_activity`, если мы дадим значение `match_parent` атрибуту `layout_width`, то кнопка будет растянута на всю ширину экрана.
* использовать значение `wrap_content` - при использовании этого параметра объект будет растянут на такое минимальное расстояние для вмещения текста кнопки. Такой параметр стоит по умолчанию у многих объектов `View`.
* использовать абсолютные значения - при использовании этого параметра объект будет растянут на значение, заданное пользователем.

![Рис. 2. Пример использования match\_parent и wrap\_content](https://1012242269-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MO4xhIdPuIYBTJd60BA%2F-MZwWTxfHUlih2rWpeVC%2F-MZwyz55z4QMOWYvUwEu%2Fimage.png?alt=media\&token=6fc68b6c-84bd-41d1-bc06-8179bd53822a)

## Внешние отступы

Данный атрибут называется `layout_margin`. Задавать отступ можно как со всех сторон, используя `layout_margin`. Для того, чтобы задать внешний отступ с определенной стороны используются следующие значения:

* `layout_left` - данный атрибут задает отступ слева.
* `layout_top` - данный атрибут задает отступ сверху.
* `layout_bottom` - данный атрибут задает отступ снизу.
* `layout_right` - данный атрибут задает отступ справа.

Кроме того, в панеле управления можно задать внешние отступы по умолчанию. С этим параметром добавляемые элементы будут автоматически брать отступ относительно границ экрана и других элементов.

![Рис. 3. Верхний и правый внешний отступ по 50dp](https://1012242269-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MO4xhIdPuIYBTJd60BA%2F-MZwWTxfHUlih2rWpeVC%2F-MZx1o2SwPjd1JJ2GqHS%2Fimage.png?alt=media\&token=2ad513b5-79ce-4a37-acc0-978cefb68a93)

## Внутренние отступы

Данный атрибут называется `android:padding`. Задавать отступ можно как со всех сторон, используя `android:padding`. Для того, чтобы задать внешний отступ с определенной стороны используются следующие значения:

* `android:paddingLeft` - данный атрибут задает отступ слева.
* `android:paddingTop` - данный атрибут задает отступ сверху.
* `android:paddingBottom` - данный атрибут задает отступ снизу.
* `android:paddingRight` - данный атрибут задает отступ справа.

Кроме того, в панеле управления можно задать внешние отступы по умолчанию. С этим параметром добавляемые элементы будут автоматически брать отступ относительно границ экрана и других элементов.

![Рис. 4. Пример внутреннего доступа. Сверху и снизу по 60dp и слева и справа по 40dp](https://1012242269-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MO4xhIdPuIYBTJd60BA%2F-MZwWTxfHUlih2rWpeVC%2F-MZx1f8o9AmXRW5a7kC6%2F%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9_%D0%BE%D1%82%D1%81%D1%82%D1%83%D0%BF.png?alt=media\&token=8a0c5984-9cb0-404e-9e54-25ec535985ae)

## Контроль

Ниже вы сможете пройти тренажер, посвященный размерам изображения и основным атрибутам.

{% embed url="<https://learningapps.org/display?v=pbvetyr6321>" %}
