Layout Editor: ce este, Android Studio și crearea machetelor

Autor: IT Sectr Publicat: 2026-02-12 Timp de citire: 10 min

Layout Editor — editorul vizual de machete XML din Android Studio, care permite crearea interfețelor aplicațiilor Android fără scrierea manuală a codului. Vom analiza ce este, cum să lucrăm cu ConstraintLayout și LinearLayout, să folosim paleta de componente și să configurăm atributele prin Properties Panel.

Principalele puncte

  • Layout Editor — interfața vizuală pentru crearea machetelor XML Android în Android Studio cu Drag-and-Drop și previzualizare în timp real
  • ConstraintLayout — macheta de bază care creează o ierarhie plată cu legături (constraints) flexibile între elemente
  • LinearLayout — container pentru aranjarea liniară a widgeturilor pe orizontală sau verticală cu distribuție weight
  • Blueprint și Design — două moduri de vizualizare: schemă cu constrângeri și previzualizare vizuală a machetei
  • Properties Panel — panoul de configurare a tuturor atributelor componentei selectate fără a comuta în XML

Ce este Layout Editor?

Layout Editor — instrumentul integrat în Android Studio pentru proiectarea vizuală a interfețelor de utilizator ale aplicațiilor Android. Se deschide la dublu-click pe fișierul XML al machetei din folderul res/layout/ și este accesibil prin panoul inferior de comutare între filele Code, Design și Split. Dezvoltatorul poate trage componentele din paletă pe pânză, poate configura proprietățile lor și poate observa modificările în timp real.

Instrumentul suportă două moduri de afișare: Design (pânza vizuală cu afișarea reală a widgeturilor) și Blueprint (reprezentarea schematică cu constrângeri și limite). Modul Split arată simultan codul XML și pânza vizuală. Comutarea între ele se face prin butoanele din colțul stânga sus al editorului.

Layout Editor generează automat cod XML pentru fiecare acțiune a utilizatorului: adăugarea unui element, configurarea marginilor, crearea unei constrângeri. Acest lucru permite dezvoltatorului să nu rețină zeci de atribute XML și să se concentreze asupra rezultatului vizual. Codul generat poate fi întotdeauna editat manual în fila Code.

ModDescriereTasta rapidă
DesignPânză vizuală cu componente realeShift + D
BlueprintSchemă cu constrângeri și limiteShift + B
SplitCod XML și pânză simultanShift + S

Zonele principale ale Layout Editor

Interfața Layout Editor este împărțită în patru zone: Palette (paleta de componente), Component Tree (arborele de componente), Design Surface (pânza de proiectare) și Properties Panel (panoul de proprietăți). Palette conține toate widgeturile disponibile din Android SDK, grupate pe categorii: Widgets, Text, Buttons, Containers și altele. Component Tree afișează ierarhia machetei sub formă de arbore, permițând tragerea elementelor între containere.

Design Surface — partea centrală a editorului, unde este afișată macheta. Pe pânză se pot selecta elemente, muta, redimensiona și crea constrângeri. În partea inferioară a pânzei este disponibil un comutator de dispozitive și orientări pentru previzualizarea machetei pe diferite ecrane. Layout Editor suportă previzualizarea pe multiple dispozitive virtuale Nexus, Pixel și Samsung.

Properties Panel afișează atributele elementului selectat: layout_width, layout_height, margini (margin), padding, gravitația și toate atributele specifice precum textSize pentru TextView. Fiecare modificare în Properties Panel se reflectă instantaneu pe pânză și generează codul XML corespunzător.

În colțul stânga sus al editorului se află butoanele de control: selectarea modului de afișare, activarea conectării automate a constrângerilor (Autoconnect), afișarea constrângerilor sub formă de linii și comutarea între dispozitivele virtuale. Butonul «Device for Preview» permite selectarea unui model de smartphone, tabletă sau Android TV pentru verificarea adaptivității.

ConstraintLayout: poziționare flexibilă

ConstraintLayout — macheta principală recomandată de Google pentru toate proiectele Android noi. Spre deosebire de LinearLayout-urile imbricate, ConstraintLayout creează o ierarhie plată, unde fiecare element este legat de părinte, de alte elemente sau de linii de ghidare (guidelines). Aceasta reduce adâncimea de imbricare și îmbunătățește performanța de randare.

Fiecare element din ConstraintLayout are constrângeri laterale: app:layout_constraintStart_toStartOf, app:layout_constraintEnd_toEndOf, app:layout_constraintTop_toTopOf, app:layout_constraintBottom_toBottomOf. Constrângerile pot fi legate de părinte (parent) sau de ID-ul altui element. Șablonul XML de bază arată astfel:

xml



    

În acest exemplu, TextView este centrat pe toate cele patru laturi ale părintelui. Dimensiunea 0dp (match_constraint) înseamnă că lățimea se întinde de la constrângerea stângă la cea dreaptă. Această abordare permite crearea de machete adaptive fără dimensiuni fixe.

ConstraintLayout suportă și Bias — deplasarea centrului elementului. Atributele layout_constraintHorizontal_bias și layout_constraintVertical_bias acceptă valori de la 0 la 1, unde 0.5 este centrul, 0 — lipirea de început, 1 — lipirea de sfârșit. Bias permite poziționarea precisă a elementului între două constrângeri.

Capabilități suplimentare ale ConstraintLayout: Guidelines (linii de ghidare în procente sau dp), Barriers (bariere care combină mai multe elemente) și Chains (lanțuri de elemente cu distribuție a spațiului). Toate aceste elemente se creează direct în Layout Editor prin meniul contextual de pe pânză.

LinearLayout: aranjare liniară

LinearLayout — container care aranjează elementele copil secvențial pe orizontală (android:orientation="horizontal") sau pe verticală (android:orientation="vertical"). Este cea mai simplă machetă de înțeles, dar creează o ierarhie imbricată în machetele complexe, ceea ce poate reduce performanța.

Atributul cheie al LinearLayout este weight (android:layout_weight). Acesta permite distribuirea spațiului liber între elemente proporțional cu valorile specificate. Dacă două butoane primesc weight="1", ele vor ocupa o lățime egală. Un element cu weight="2" va primi de două ori mai mult spațiu decât unul cu weight="1". Exemplu XML cu LinearLayout:

xml


    

    

    

În acest exemplu, EditText primește layout_weight="1" și ocupă tot spațiul liber dintre labelName și btnSubmit. layout_width="0dp" indică faptul că lățimea EditText este determinată complet de weight. Fără weight ar trebui să setăm o lățime fixă, care nu se adaptează la diferite ecrane.

Caracteristici importante ale LinearLayout: android:gravity controlează alinierea conținutului în interiorul containerului, iar android:layout_gravity controlează alinierea containerului însuși în interiorul părintelui. LinearLayout cu LinearLayout-uri imbricate este o cauză frecventă a imbricării adânci, de aceea Google recomandă înlocuirea acestor construcții cu ConstraintLayout.

Cod XML: structura internă a machetei

Fiecare machetă Android este un fișier XML în folderul res/layout/. Layout Editor generează acest fișier automat, dar înțelegerea structurii sale este necesară pentru optimizarea manuală. Elementul rădăcină determină tipul containerului (ConstraintLayout, LinearLayout, FrameLayout), în interiorul căruia se află widgeturile copil.

Șablonul XML de bază cu ConstraintLayout conține declarația spațiilor de nume xmlns:android și xmlns:app. Spațiul de nume app este folosit pentru atributele bibliotecii ConstraintLayout, cum ar fi layout_constraintStart_toStartOf. Fiecărui element i se recomandă să i se atribuie android:id pentru referințe din alte elemente și din codul Activity sau Fragment.

Exemplu de fragment de machetă cu mai multe elemente și constrângeri:

xml


    

    

    

În această machetă, ImageView este legat de partea de sus a părintelui și centrat pe orizontală. TextView este legat de marginea inferioară a ImageView (Top_toBottomOf). Button este plasat sub TextView. Acest lanț de constrângeri creează o structură secvențială fără LinearLayout-uri imbricate.

Layout Editor permite comutarea între reprezentarea vizuală și cea textuală prin filele Design / Code / Split. În modul Split, modificările din XML se reflectă instantaneu pe pânză și invers. Acest lucru este deosebit de convenabil la reglarea fină a atributelor care nu au control vizual pe pânză.

Paleta de componente și Properties Panel

Palette — panoul stâng al Layout Editor care conține toate componentele UI disponibile: TextView, Button, ImageView, EditText, ProgressBar, RecyclerView și altele. Componentele sunt grupate pe categorii: Widgets, Text, Buttons, Containers, Transitions, Advanced. Pentru a adăuga o componentă pe pânză, este suficient să o trageți din paletă pe Design Surface.

Properties Panel (panoul drept) afișează toate atributele elementului selectat. Panoul este împărțit în secțiuni: Id (identificator), Layout (dimensiuni și margini), Transform (rotire și scară), Text (conținutul TextView), Padding and Margin. Pentru fiecare atribut este disponibil un meniu derulant cu opțiunile: wrap_content, match_parent, match_constraint (0dp).

O caracteristică specială a Properties Panel este editorul vizual al spațierilor (padding și margin) cu afișare grafică. Făcând clic pe numărul de lângă săgeata corespunzătoare, puteți modifica spațierea cu ajutorul unui glisor. Layout Editor normalizează automat spațierile: dacă toate cele patru spațieri sunt identice, se folosește atributul android:layout_margin, altfel — android:layout_marginStart, android:layout_marginTop individuale etc.

Pentru editarea atributelor de constrângere în Properties Panel există o secțiune specială Constraints. Aici sunt afișate toate legăturile elementului: de ce parte a părintelui sau a altui element este legată fiecare margine. Se poate schimba tipul legăturii, adăuga sau șterge o constrângere. Ștergerea unei constrângeri se poate face și făcând clic pe linia corespunzătoare de pe pânză în modul Blueprint.

CategorieComponenteExemple de atribute
WidgetsTextView, ImageView, ProgressBartextSize, src, max
TextEditText, AutoCompleteTextViewhint, inputType, imeOptions
ButtonsButton, ImageButton, ToggleButtontext, onClick, backgroundTint
ContainersCardView, ScrollView, RecyclerViewcardCornerRadius, clipToPadding
AdvancedWebView, MapView, VideoViewloadUrl, zOrderOnTop

Crearea machetelor adaptive

O machetă adaptivă este o machetă care se afișează corect pe diferite dimensiuni de ecran: de la telefoane compacte (320dp) la tablete mari (600dp+) și dispozitive pliabile. Layout Editor oferă mai multe instrumente pentru verificarea și crearea interfețelor adaptive.

Primul instrument — Device for Preview în bara de instrumente. Lista derulantă conține dispozitive populare: Pixel 6, Pixel 9, Samsung Galaxy S25, Nexus 7, Nexus 9, Pixel C și altele. Se poate adăuga un dispozitiv personalizat cu dimensiuni arbitrare de ecran și densitate de pixeli (dpi). Comutarea între dispozitive durează o secundă și arată cum arată macheta pe fiecare ecran.

Al doilea instrument — calificatorii de dimensiune (qualifiers) pentru crearea de machete alternative. În Layout Editor se pot crea mai multe versiuni ale aceluiași fișier XML pentru diferite dimensiuni de ecran, orientări sau densități. De exemplu, fișierul activity_main.xml pentru telefon și activity_main-sw600dp.xml pentru tabletă. Layout Editor afișează automat previzualizarea pentru calificatorul activ.

A treia abordare — ConstraintLayout cu Guidelines în procente. Liniile de ghidare cu atributul app:layout_constraintGuide_percent permit legarea elementelor de poziții procentuale. De exemplu, un guideline la 50% împarte ecranul în jumătate, indiferent de dimensiunea dispozitivului. Aceasta este cea mai flexibilă metodă de creare a machetelor adaptive fără duplicarea fișierelor XML.

Layout Editor afișează și avertismente despre problemele de adaptivitate: triunghiuri galbene pe elementele cu lățime fixă, imagini prea mari sau imbricare neoptimală. Dezvoltatorul poate face clic pe avertisment și poate primi o recomandare de remediere.

Optimizarea machetelor XML

Optimizarea machetelor influențează direct viteza de randare și fluența funcționării aplicației. Layout Editor ajută la depistarea problemelor prin Layout Inspector încorporat și avertismentele din panoul Problems. Regulile principale de optimizare: minimizarea imbricării, utilizarea ConstraintLayout în locul LinearLayout-urilor imbricate, alegerea corectă a atributelor de dimensiuni.

Adâncimea de imbricare — principalul dușman al performanței. Fiecare container imbricat crește timpul de măsurare și desenare. Instrumentul Hierarchy View din Android Studio arată arborele machetelor. Dacă adâncimea depășește 5–6 niveluri, macheta trebuie restructurată. ConstraintLayout rezolvă această problemă înlocuind 3–4 niveluri de imbricare cu un singur container plat.

Recomandări pentru optimizarea machetelor XML în Layout Editor:

  • Utilizați ConstraintLayout ca container rădăcină în locul LinearLayout-urilor imbricate — reduce adâncimea ierarhiei și accelerează randarea
  • Evitați layout_weight în LinearLayout pentru liste mari — weight necesită o trecere dublă de măsurare (two-pass layout)
  • Ștergeți constrângerile neutilizate prin meniul contextual Clear Constraints of Selection din Layout Editor
  • Utilizați ViewStub pentru blocurile afișate rar — ViewStub amână inflatarea până la momentul vizibilității
  • Merge pentru componente reutilizabile — tag-ul merge elimină containerul suplimentar la includerea prin include
  • Reduceți dimensiunea imaginilor și utilizați VectorDrawable în loc de PNG pentru iconițe

Layout Inspector — instrumentul Android Studio pentru profilarea machetelor în timpul execuției aplicației. Acesta arată ierarhia reală, timpul de măsurare și desenare al fiecărei componente. Layout Editor este integrat cu Layout Inspector: dublu-click pe un avertisment deschide problema corespunzătoare într-un raport detaliat.

Întrebări frecvente

Ce este Layout Editor în Android Studio?

Layout Editor — editorul vizual de machete XML încorporat în Android Studio. Acesta permite crearea UI al aplicațiilor Android prin tragerea componentelor pe pânză, configurarea atributelor prin panoul de proprietăți și vizualizarea rezultatului în timp real. Modurile Design, Blueprint și Split acoperă toate etapele de dezvoltare a machetei.

Ce machetă este mai bine să folosesc: ConstraintLayout sau LinearLayout?

ConstraintLayout este recomandat de Google pentru proiecte noi datorită ierarhiei plate și constrângerilor flexibile. LinearLayout este justificat doar pentru secțiuni liniare simple cu 2–3 elemente fără imbricare. Într-o singură machetă se pot combina ambele abordări, folosind ConstraintLayout ca container rădăcină.

Cum se adaugă o constrângere în Layout Editor?

În modul Design, plasați cursorul pe cercul de pe marginea elementului (pentru ConstraintLayout). Țineți apăsat butonul stâng al mouse-ului și trageți linia către părinte sau alt element până când apare ancora (snap). Pentru configurarea numerică a marginilor, utilizați Properties Panel, secțiunea Constraints. Constrângerile se creează și automat când Autoconnect este activat.

De ce Layout Editor afișează avertismente galbene?

Avertismentele galbene indică probleme potențiale: performanță neoptimală (imbricare adâncă, dimensiuni fixe), lipsa descrierii de conținut pentru accesibilitate, șiruri hardcodate în loc de resurse strings.xml. Fiecare avertisment conține o recomandare de remediere. Layout Editor evidențiază și elementele cu probleme în roșu, dacă eroarea este critică.

Cum se verifică macheta pe diferite ecrane?

Utilizați lista derulantă Device for Preview din bara de instrumente a Layout Editor. Selectați orice dispozitiv din listă sau adăugați unul personalizat cu dimensiuni arbitrare. Pentru a verifica adaptivitatea, creați machete alternative cu calificatori (sw600dp, sw720dp) și comutați între ele prin aceeași listă. Layout Inspector pe un dispozitiv real va afișa rezultatul final.

Concluzii

  • Layout Editor — editorul vizual de machete XML din Android Studio cu modurile Design, Blueprint și Split
  • ConstraintLayout — containerul principal cu ierarhie plată, constrângeri și suport pentru Bias, Chains, Guidelines
  • LinearLayout — aranjarea liniară a elementelor cu distribuție weight, potrivit pentru secțiuni simple
  • Palette și Properties Panel — tragerea și plasarea componentelor și configurarea vizuală a tuturor atributelor machetei
  • Adaptivitate — previzualizare pe diferite dispozitive, calificatori și Guidelines procentuale
  • Optimizare — minimizarea imbricării, ConstraintLayout în locul LinearLayout-urilor imbricate, Layout Inspector
  • Codul XML este generat automat și disponibil pentru editare manuală în fila Code

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și