> For the complete documentation index, see [llms.txt](https://programmingfundamental.gitbook.io/programmingwithjava/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://programmingfundamental.gitbook.io/programmingwithjava/programirane-za-mobilni-i-internet-ustroistva/lab2/layout.md).

# Layout

Layout в ресурс за оформление, който дефинира изгледа на Activity или на компонент. Името на Layout се използва като идентификатор (ID) за достъп до ресурса.

Всички елементи в Layout са изградени с помощта на йерархия на обектите View и ViewGroup. Потребителят може да види и да взаимодейства с View. Докато ViewGroup е невидим контейнер, който определя структурата на Layout.

![](/files/-MVQB6NsG_UHcQ1vEbQT)

Обектите View обикновено се наричат ​​"widgets" и могат да бъдат един от многото подкласове, като Button или TextView. Обектите ViewGroup обикновено се наричат ​​"layouts" и могат да бъдат един от многото типове, които осигуряват различна структура на оформлението, като LinearLayout или ConstraintLayout.

Оформлението на потребителския изглед може да се дефинира по два начина:

Посредством XML описание. Android предоставя ясен речник на XML, който съответства на View класовете и подкласовете. Можете също да използвате Layout Editor на Android Studio, за да създадете XML оформлението си с помощта на интерфейс за плъзгане и пускане.

Като се инстанцират класовете на оформлението по време на изпълнение. Приложението може да създава View и ViewGroup обекти и да манипулира техните свойства програмно.

&#x20;Декларирането на потребителския интерфейс в XML позволява да се отдели презентацията на приложението от кода, който контролира поведението му. Използването на XML файлове също улеснява предоставянето на различен  Layout за различни размери и ориентация на екрана.
