Layout Editor: шта је то, Android Studio и креирање макета

Аутор: IT Sectr Објављено: 2026-02-12 Време читања: 10 мин

Layout Editor — визуелни уређивач XML макета у Android Studio, који омогућава креирање интерфејса Android апликација без ручног писања кода. Размотрићемо шта је то, како радити са ConstraintLayout и LinearLayout, користити палету компоненти и подешавати атрибуте преко Properties Panel.

Главно

  • Layout Editor — визуелни интерфејс за креирање XML макета Android у Android Studio са Drag-and-Drop и прегледом у реалном времену
  • ConstraintLayout — основни layout, који ствара равну хијерархију са флексибилним везама (constraints) између елемената
  • LinearLayout — контејнер за линеарно распоређивање виџета хоризонтално или вертикално са weight-расподелом
  • Blueprint и Design — два режима приказа: шема са констрејнтима и визуелни преглед макета
  • Properties Panel — панел за подешавање свих атрибута изабране компоненте без преласка у XML

Шта је Layout Editor?

Layout Editor — уграђени алат у Android Studio за визуелно пројектовање корисничких интерфејса Android апликација. Отвара се двоструким кликом на XML датотеку макета у фолдеру res/layout/ и доступан је кроз доњи панел за пребацивање између картица Code, Design и Split. Програмер може да превлачи компоненте из палете на платно, подешава њихова својства и посматра промене у реалном времену.

Алат подржава два режима приказа: Design (визуелно платно са стварним приказом виџета) и Blueprint (шематски приказ са констрејнтима и границама). Split режим приказује XML код и визуелно платно истовремено. Пребацивање између њих врши се дугмићима у горњем левом углу уређивача.

Layout Editor аутоматски генерише XML код за сваку радњу корисника: додавање елемента, подешавање маргина, креирање констрејнта. Ово омогућава програмеру да не памти десетине XML атрибута и да се фокусира на визуелни резултат. Генерисани код се увек може ручно уредити на картици Code.

РежимОписПречица
DesignВизуелно платно са стварним компонентамаShift + D
BlueprintШема са констрејнтима и границамаShift + B
SplitXML код и платно истовременоShift + S

Основне зоне Layout Editor

Интерфејс Layout Editor-а подељен је на четири зоне: Palette (палета компоненти), Component Tree (стабло компоненти), Design Surface (платно за пројектовање) и Properties Panel (панел својстава). Palette садржи све доступне виџете Android SDK-а, груписане по категоријама: Widgets, Text, Buttons, Containers и друге. Component Tree приказује хијерархију макета у облику стабла, омогућавајући превлачење елемената између контејнера.

Design Surface — централни део уређивача где се приказује макет. На платну се могу истицати елементи, померати их, мењати величине и креирати констрејнти. У доњем делу платна доступан је прекидач уређаја и оријентације за преглед макета на различитим екранима. Layout Editor подржава преглед на многим виртуелним уређајима Nexus, Pixel и Samsung.

Properties Panel приказује атрибуте изабраног елемента: layout_width, layout_height, маргине, унутрашње маргине (padding), гравитацију и све специфичне атрибуте попут textSize за TextView. Свака промена у Properties Panel-у тренутно се одражава на платну и генерише одговарајући XML код.

У горњем левом углу уређивача налазе се дугмићи за управљање: избор режима приказа, укључивање аутоматског повезивања констрејнта (Autoconnect), приказ констрејнта у виду линија и пребацивање између виртуелних уређаја. Дугме «Device for Preview» омогућава избор модела паметног телефона, таблета или Android TV-а за проверу адаптивности.

ConstraintLayout: флексибилно позиционирање

ConstraintLayout — основни layout, препоручен од Google-а за све нове Android пројекте. За разлику од угнежђених LinearLayout-а, ConstraintLayout ствара равну хијерархију, где је сваки елемент везан за родитеља, друге елементе или водеће линије (guidelines). Ово смањује дубину угнежђења и повећава перформансе рендеровања.

Сваки елемент у ConstraintLayout-у има бочне констрејнте: app:layout_constraintStart_toStartOf, app:layout_constraintEnd_toEndOf, app:layout_constraintTop_toTopOf, app:layout_constraintBottom_toBottomOf. Констрејнти могу бити везани за родитеља (parent) или за ID другог елемента. Основни XML шаблон изгледа овако:

xml



    

У овом примеру, TextView је центриран по све четири стране родитеља. Величина 0dp (match_constraint) значи да се ширина протеже од левог до десног констрејнта. Овакав приступ омогућава креирање адаптивних макета без фиксних величина.

ConstraintLayout такође подржава Bias — померање центра елемента. Атрибути layout_constraintHorizontal_bias и layout_constraintVertical_bias примају вредности од 0 до 1, где је 0.5 центар, 0 — прибијање на почетак, 1 — на крај. Bias омогућава прецизно позиционирање елемента између два констрејнта.

Додатне могућности ConstraintLayout-а: Guidelines (водеће линије у процентима или dp), Barriers (баријере које обједињују више елемената) и Chains (ланци елемената са расподелом простора). Сви ови елементи креирају се директно у Layout Editor-у преко контекстног менија на платну.

LinearLayout: линеарни распоред

LinearLayout — контејнер који распоређује елементе потомке узастопно хоризонтално (android:orientation="horizontal") или вертикално (android:orientation="vertical"). Ово је најједноставнији layout за разумевање, али ствара угнежђену хијерархију код сложених макета, што може смањити перформансе.

Кључни атрибут LinearLayout-а је weight (android:layout_weight). Он омогућава расподелу слободног простора између елемената пропорционално наведеним вредностима. Ако се два дугмета подесе са weight="1", заузеће једнаку ширину. Елемент са weight="2" добиће двоструко више простора од елемента са weight="1". Пример XML-а са LinearLayout:

xml


    

    

    

У овом примеру, EditText добија layout_weight="1" и заузима сав слободан простор између labelName и btnSubmit. layout_width="0dp" указује да је ширина EditText-а у потпуности одређена weight-ом. Без weight-а морали бисмо да поставимо фиксну ширину, што се не прилагођава различитим екранима.

Важне карактеристике LinearLayout-а: android:gravity управља поравнањем садржаја унутар контејнера, а android:layout_gravity — поравнањем самог контејнера унутар родитеља. LinearLayout са угнежђеним LinearLayout-има чест је узрок дубоког угнежђења, па Google препоручује замену оваквих конструкција ConstraintLayout-ом.

XML код: структура макета изнутра

Сваки Android макет је XML датотека у фолдеру res/layout/. Layout Editor генерише ову датотеку аутоматски, али разумевање њене структуре неопходно је за ручну оптимизацију. Основни елемент одређује тип контејнера (ConstraintLayout, LinearLayout, FrameLayout), унутар којег се налазе виџети потомци.

Основни XML шаблон са ConstraintLayout-ом садржи декларацију простора имена xmlns:android и xmlns:app. Простор имена app користи се за атрибуте библиотеке ConstraintLayout, као што је layout_constraintStart_toStartOf. Сваком елементу препоручује се додељивање android:id за референце из других елемената и из кода Activity или Fragment-а.

Пример фрагмента макета са неколико елемената и констрејнтима:

xml


    

    

    

У овом макету, ImageView је везан за врх родитеља и центриран хоризонтално. TextView је везан за доњу ивицу ImageView-а (Top_toBottomOf). Button се налази испод TextView-а. Овај ланац констрејнта ствара секвенцијалну структуру без угнежђених LinearLayout-а.

Layout Editor омогућава пребацивање између визуелног и текстуалног приказа преко картица Design / Code / Split. У Split режиму, промене у XML-у тренутно се одражавају на платну и обрнуто. Ово је посебно згодно за фино подешавање атрибута који немају визуелну контролу на платну.

Палета компоненти и Properties Panel

Palette — леви панел Layout Editor-а који садржи све доступне UI компоненте: TextView, Button, ImageView, EditText, ProgressBar, RecyclerView и друге. Компоненте су груписане по категоријама: Widgets, Text, Buttons, Containers, Transitions, Advanced. Да бисте додали компоненту на платно, довољно је да је превучете из палете на Design Surface.

Properties Panel (десни панел) приказује све атрибуте изабраног елемента. Панел је подељен на секције: Id (идентификатор), Layout (величине и маргине), Transform (ротација и размера), Text (садржај TextView-а), Padding and Margin. За сваки атрибут доступан је падајући мени са опцијама: wrap_content, match_parent, match_constraint (0dp).

Посебност Properties Panel-а је визуелни уређивач размака (padding и margin) са графичким приказом. Кликом на број поред одговарајуће стрелице, можете променити размак помоћу клизача. Layout Editor аутоматски нормализује размаке: ако су сва четири размака иста, користи се атрибут android:layout_margin, у супротном — појединачни android:layout_marginStart, android:layout_marginTop итд.

За уређивање атрибута констрејнта у Properties Panel-у постоји посебна секција Constraints. Овде се приказују све везе елемента: на коју страну родитеља или другог елемента је везана свака ивица. Може се променити тип везе, додати или уклонити констрејнт. Брисање констрејнта може се извршити и кликом на одговарајућу линију на платну у Blueprint режиму.

КатегоријаКомпонентеПример атрибута
WidgetsTextView, ImageView, ProgressBartextSize, src, max
TextEditText, AutoCompleteTextViewhint, inputType, imeOptions
ButtonsButton, ImageButton, ToggleButtontext, onClick, backgroundTint
ContainersCardView, ScrollView, RecyclerViewcardCornerRadius, clipToPadding
AdvancedWebView, MapView, VideoViewloadUrl, zOrderOnTop

Креирање адаптивних макета

Адаптивни макет је макет који се правилно приказује на различитим величинама екрана: од компактних телефона (320dp) до великих таблета (600dp+) и склопивих уређаја. Layout Editor пружа неколико алата за проверу и креирање адаптивних интерфејса.

Први алат — Device for Preview на траци са алаткама. Падајућа листа садржи популарне уређаје: Pixel 6, Pixel 9, Samsung Galaxy S25, Nexus 7, Nexus 9, Pixel C и друге. Може се додати прилагођени уређај са произвољним величинама екрана и густином пиксела (dpi). Пребацивање између уређаја траје једну секунду и показује како макет изгледа на сваком екрану.

Други алат — квалификатори величине (qualifiers) за креирање алтернативних макета. У Layout Editor-у можете креирати више верзија исте XML датотеке за различите величине екрана, оријентацију или густину. На пример, датотека activity_main.xml за телефон и activity_main-sw600dp.xml за таблет. Layout Editor аутоматски приказује преглед за активни квалификатор.

Трећи приступ — ConstraintLayout са Guidelines у процентима. Водеће линије са атрибутом app:layout_constraintGuide_percent омогућавају везивање елемената за процентуалне позиције. На пример, guideline на 50% дели екран на пола без обзира на величину уређаја. Ово је најфлексибилнији начин креирања адаптивних макета без дуплирања XML датотека.

Layout Editor такође приказује упозорења о проблемима адаптивности: жути троуглови на елементима са фиксном ширином, превеликим сликама или неоптималном угнежђењу. Програмер може кликнути на упозорење и добити препоруку за исправку.

Оптимизација XML макета

Оптимизација макета директно утиче на брзину рендеровања и глаткоћу рада апликације. Layout Editor помаже у откривању проблема кроз уграђени Layout Inspector и упозорења у панелу Problems. Основна правила оптимизације: минимизација угнежђења, коришћење ConstraintLayout-а уместо угнежђених LinearLayout-а, правилан избор атрибута величина.

Дубина угнежђења — главни непријатељ перформанси. Сваки угнежђени контејнер повећава време мерења и цртања. Алат Hierarchy View у Android Studio приказује стабло макета. Ако дубина прелази 5–6 нивоа, макет треба реструктурирати. ConstraintLayout решава овај проблем замењујући 3–4 нивоа угнежђења једним равним контејнером.

Препоруке за оптимизацију XML макета у Layout Editor-у:

  • Користите ConstraintLayout као основни контејнер уместо угнежђених LinearLayout-а — смањује дубину хијерархије и убрзава рендеровање
  • Избегавајте layout_weight у LinearLayout-у за велике листе — weight захтева двоструки пролаз мерења (two-pass layout)
  • Уклањајте неискоришћене констрејнте преко контекстног менија Clear Constraints of Selection у Layout Editor-у
  • Користите ViewStub за ретко приказиване блокове — ViewStub одлаже инфлејт до тренутка видљивости
  • Merge за компоненте које се поново користе — merge ознака уклања непотребан контејнер при укључивању преко include
  • Смањите величину слика и користите VectorDrawable уместо PNG за иконе

Layout Inspector — алат Android Studio за профилисање макета током извршавања апликације. Приказује стварну хијерархију, време мерења и цртања сваке компоненте. Layout Editor је интегрисан са Layout Inspector-ом: двоструки клик на упозорење отвара одговарајући проблем у детаљном извештају.

Често постављана питања

Шта је Layout Editor у Android Studio?

Layout Editor — визуелни уређивач XML макета уграђен у Android Studio. Омогућава креирање UI Android апликација превлачењем компоненти на платно, подешавањем атрибута преко панела својстава и прегледом резултата у реалном времену. Режими Design, Blueprint и Split покривају све фазе развоја макета.

Који layout је боље користити: ConstraintLayout или LinearLayout?

ConstraintLayout препоручује Google за нове пројекте због равне хијерархије и флексибилних констрејнта. LinearLayout је оправдан само за једноставне линеарне секције са 2–3 елемента без угнежђења. У једном макету могу се комбиновати оба приступа, користећи ConstraintLayout као основни контејнер.

Како додати констрејнт у Layout Editor?

У Design режиму поставите курсор на круг на ивици елемента (за ConstraintLayout). Држите леви тастер миша и превуците линију ка родитељу или другом елементу док се не појави закачка (snap). За нумеричко подешавање маргина користите Properties Panel, секцију Constraints. Констрејнти се такође аутоматски креирају када је Autoconnect укључен.

Зашто Layout Editor приказује жута упозорења?

Жута упозорења указују на потенцијалне проблеме: неоптималне перформансе (дубоко угнежђење, фиксне величине), недостатак content description-а за accessibility, тврдо кодиране низове уместо ресурса strings.xml. Свако упозорење садржи препоруку за исправку. Layout Editor такође истиче елементе са проблемима црвеном бојом ако је грешка критична.

Како проверити макет на различитим екранима?

Користите падајућу листу Device for Preview на траци са алаткама Layout Editor-а. Изаберите било који уређај са листе или додајте прилагођени са произвољним величинама. За проверу адаптивности креирајте алтернативне макете са квалификаторима (sw600dp, sw720dp) и пребацујте се између њих преко исте листе. Layout Inspector на стварном уређају показаће коначни резултат.

Закључци

  • Layout Editor — визуелни уређивач XML макета у Android Studio са режимима Design, Blueprint и Split
  • ConstraintLayout — основни контејнер са равном хијерархијом, констрејнтима и подршком за Bias, Chains, Guidelines
  • LinearLayout — линеарно распоређивање елемената са weight-расподелом, погодан за једноставне секције
  • Palette и Properties Panel — превлачење компоненти и визуелно подешавање свих атрибута макета
  • Адаптивност — преглед на различитим уређајима, квалификатори и процентуалне Guidelines
  • Оптимизација — минимизација угнежђења, ConstraintLayout уместо угнежђених LinearLayout-а, Layout Inspector
  • XML код се аутоматски генерише и доступан је за ручно уређивање на картици Code

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође