Layout Editor ist ein visueller XML-Layout-Editor in Android Studio, mit dem Sie Android-Anwendungsoberflächen erstellen können, ohne manuell Code schreiben zu müssen. Wir erklären, was es ist, wie man mit ConstraintLayout und LinearLayout arbeitet, die Komponentenpalette verwendet und Attribute über das Properties Panel konfiguriert.
Wichtigste Erkenntnisse
Layout Editor ist ein in Android Studio integriertes Tool zum visuellen Entwerfen von Benutzeroberflächen für Android-Anwendungen. Es öffnet sich durch Doppelklick auf eine XML-Layoutdatei im Ordner res/layout/ und ist über das untere Bedienfeld verfügbar, das zwischen den Registerkarten Code, Design und Teilen umschaltet. Der Entwickler kann Komponenten aus der Palette auf die Leinwand ziehen, ihre Eigenschaften konfigurieren und Änderungen in Echtzeit beobachten.
Das Tool unterstützt zwei Anzeigemodi: Design (visuelle Leinwand mit echter Widget-Darstellung) und Blueprint (schematische Darstellung mit Constraints und Rahmen). Der Modus Geteilt zeigt sowohl den XML-Code als auch die visuelle Leinwand gleichzeitig. Das Umschalten zwischen ihnen erfolgt über Schaltflächen in der oberen linken Ecke des Editors.
Layout Editor generiert automatisch XML-Code für jede Benutzeraktion: Hinzufügen eines Elements, Festlegen von Rändern, Erstellen einer Einschränkung. Dadurch muss der Entwickler nicht Dutzende von XML-Attributen auswendig lernen und kann sich auf das visuelle Ergebnis konzentrieren. Der generierte Code kann jederzeit auf der Registerkarte Code manuell bearbeitet werden.
| Modus | Beschreibung | Tastenkürzel |
|---|---|---|
| Design | Visuelle Leinwand mit echten Komponenten | Shift + D |
| Blueprint | Schema mit Constraints und Rahmen | Shift + B |
| Geteilt | XML-Code und Leinwand gleichzeitig | Shift + S |
Die Oberfläche des Layout Editors ist in vier Bereiche unterteilt: Palette (Komponentenpalette), Komponentenbaum (Komponentenbaum), Designoberfläche (Design-Leinwand) und Eigenschaftenbereich (Eigenschaftenbedienfeld). Die Palette enthält alle verfügbaren Android-SDK-Widgets, gruppiert nach Kategorien: Widgets, Text, Schaltflächen, Container und andere. Der Komponentenbaum zeigt die Layouthierarchie als Baum an und ermöglicht das Ziehen von Elementen zwischen Containern.
Designoberfläche ist der zentrale Teil des Editors, in dem das Layout angezeigt wird. Auf der Leinwand können Sie Elemente auswählen, verschieben, ihre Größe ändern und Constraints erstellen. Am unteren Rand der Leinwand befindet sich ein Umschalter für Geräte und Ausrichtung, um das Layout auf verschiedenen Bildschirmen in der Vorschau anzuzeigen. Layout Editor unterstützt die Vorschau auf einer Vielzahl virtueller Geräte: Nexus, Pixel und Samsung.
Eigenschaftenbereich zeigt die Attribute des ausgewählten Elements an: layout_width, layout_height, Ränder, Innenabstand, Schwerkraft und alle spezifischen Attribute wie textSize für TextView. Jede Änderung im Eigenschaftenbereich wird sofort auf der Leinwand widergespiegelt und generiert den entsprechenden XML-Code.
In der oberen linken Ecke des Editors befinden sich Steuerschaltflächen: Auswahl des Anzeigemodus, Aktivieren der automatischen Verbindung von Constraints (Autoconnect), Anzeigen von Constraints als Linien und Umschalten zwischen virtuellen Geräten. Die Schaltfläche „Gerät für Vorschau" ermöglicht die Auswahl eines Smartphone-, Tablet- oder Android-TV-Modells zur Überprüfung der Anpassungsfähigkeit.
ConstraintLayout ist das primäre Layout, das von Google für alle neuen Android-Projekte empfohlen wird. Im Gegensatz zu verschachtelten LinearLayouts erstellt ConstraintLayout eine flache Hierarchie, bei der jedes Element mit dem übergeordneten Element, anderen Elementen oder Hilfslinien verbunden ist. Dies reduziert die Verschachtelungstiefe und verbessert die Rendering-Leistung.
Jedes Element in ConstraintLayout hat seitliche Constraints: app:layout_constraintStart_toStartOf, app:layout_constraintEnd_toEndOf, app:layout_constraintTop_toTopOf, app:layout_constraintBottom_toBottomOf. Constraints können mit dem übergeordneten Element (parent) oder der ID eines anderen Elements verbunden werden. Eine grundlegende XML-Vorlage sieht so aus:
In diesem Beispiel ist das TextView auf allen vier Seiten des übergeordneten Elements zentriert. Die Größe 0dp (match_constraint) bedeutet, dass die Breite von der linken bis zur rechten Einschränkung gedehnt wird. Dieser Ansatz ermöglicht die Erstellung adaptiver Layouts ohne feste Größen.
ConstraintLayout unterstützt auch Bias — den Versatz der Mitte eines Elements. Die Attribute layout_constraintHorizontal_bias und layout_constraintVertical_bias nehmen Werte von 0 bis 1 an, wobei 0,5 die Mitte, 0 den Anfang und 1 das Ende darstellt. Bias ermöglicht die präzise Positionierung eines Elements zwischen zwei Constraints.
Zusätzliche ConstraintLayout-Funktionen: Guidelines (Hilfslinien in Prozent oder dp), Barriers (Barrieren, die mehrere Elemente gruppieren) und Chains (Ketten von Elementen mit Raumverteilung). Alle diese Elemente werden direkt im Layout Editor über das Kontextmenü auf der Leinwand erstellt.
LinearLayout ist ein Container, der untergeordnete Elemente nacheinander horizontal (android:orientation="horizontal") oder vertikal (android:orientation="vertical") anordnet. Es ist das einfachste zu verstehende Layout, erzeugt aber bei komplexen Layouts eine verschachtelte Hierarchie, was die Leistung beeinträchtigen kann.
Das wichtigste Attribut von LinearLayout ist Gewicht (android:layout_weight). Es ermöglicht die proportionale Verteilung des freien Raums zwischen Elementen gemäß den angegebenen Werten. Wenn Sie für zwei Schaltflächen weight="1" festlegen, nehmen sie die gleiche Breite ein. Ein Element mit weight="2" erhält doppelt so viel Platz wie eines mit weight="1". Beispiel-XML mit LinearLayout:
In diesem Beispiel erhält EditText layout_weight="1" und nimmt den gesamten freien Platz zwischen labelName und btnSubmit ein. layout_width="0dp" gibt an, dass die Breite von EditText vollständig durch das Gewicht bestimmt wird. Ohne Gewicht müssten Sie eine feste Breite festlegen, die sich nicht an verschiedene Bildschirme anpasst.
Wichtige Eigenschaften von LinearLayout: android:gravity steuert die Ausrichtung des Inhalts innerhalb des Containers, und android:layout_gravity steuert die Ausrichtung des Containers selbst innerhalb des übergeordneten Elements. LinearLayout mit verschachtelten LinearLayouts ist eine häufige Ursache für tiefe Verschachtelung, daher empfiehlt Google, solche Konstrukte durch ConstraintLayout zu ersetzen.
Jedes Android-Layout ist eine XML-Datei im Ordner res/layout/. Layout Editor generiert diese Datei automatisch, aber das Verständnis ihrer Struktur ist für die manuelle Optimierung notwendig. Das Wurzelelement definiert den Containertyp (ConstraintLayout, LinearLayout, FrameLayout), in dem die untergeordneten Widgets platziert werden.
Eine grundlegende XML-Vorlage mit ConstraintLayout enthält die Namespace-Deklarationen xmlns:android und xmlns:app. Der app-Namespace wird für Attribute der ConstraintLayout-Bibliothek verwendet, wie layout_constraintStart_toStartOf. Jedem Element sollte eine android:id für Referenzen aus anderen Elementen und aus Activity- oder Fragment-Code gegeben werden.
Beispiel für ein Layoutfragment mit mehreren Elementen und Constraints:
In diesem Layout ist das ImageView oben am übergeordneten Element befestigt und horizontal zentriert. Das TextView ist an der unteren Kante des ImageView (Top_toBottomOf) befestigt. Der Button wird unterhalb des TextView platziert. Diese Kette von Constraints erzeugt eine sequentielle Struktur ohne verschachtelte LinearLayouts.
Layout Editor ermöglicht das Umschalten zwischen visueller und textueller Darstellung über die Registerkarten Design / Code / Geteilt. Im Modus Geteilt werden Änderungen im XML sofort auf der Leinwand widergespiegelt und umgekehrt. Dies ist besonders nützlich für die Feinabstimmung von Attributen, die keine visuellen Steuerelemente auf der Leinwand haben.
Palette ist das linke Bedienfeld des Layout Editors, das alle verfügbaren UI-Komponenten enthält: TextView, Button, ImageView, EditText, ProgressBar, RecyclerView und andere. Die Komponenten sind nach Kategorien gruppiert: Widgets, Text, Schaltflächen, Container, Übergänge, Erweitert. Um eine Komponente zur Leinwand hinzuzufügen, ziehen Sie sie einfach aus der Palette auf die Designoberfläche.
Eigenschaftenbereich (rechtes Bedienfeld) zeigt alle Attribute des ausgewählten Elements an. Das Bedienfeld ist in Abschnitte unterteilt: ID (Kennung), Layout (Größen und Ränder), Transformieren (Drehung und Skalierung), Text (TextView-Inhalt), Innenabstand und Rand. Für jedes Attribut gibt es ein Dropdown-Menü mit Optionen: wrap_content, match_parent, match_constraint (0dp).
Eine Besonderheit des Eigenschaftenbereichs ist der visuelle Randeditor (Innenabstand und Rand) mit grafischer Anzeige. Durch Klicken auf die Zahl neben dem entsprechenden Pfeil können Sie den Rand mit einem Schieberegler ändern. Layout Editor normalisiert Ränder automatisch: Wenn alle vier Ränder gleich sind, wird das Attribut android:layout_margin verwendet, andernfalls einzelne android:layout_marginStart, android:layout_marginTop usw.
Zum Bearbeiten von Constraint-Attributen im Eigenschaftenbereich gibt es einen speziellen Abschnitt Constraints. Hier werden alle Bindungen des Elements angezeigt: an welche Seite des übergeordneten Elements oder eines anderen Elements jede Kante gebunden ist. Sie können den Bindungstyp ändern, einen Constraint hinzufügen oder entfernen. Sie können einen Constraint auch durch Klicken auf die entsprechende Linie auf der Leinwand im Blueprint-Modus entfernen.
| Kategorie | Komponenten | Beispielattribute |
|---|---|---|
| Widgets | TextView, ImageView, ProgressBar | textSize, src, max |
| Text | EditText, AutoCompleteTextView | hint, inputType, imeOptions |
| Schaltflächen | Button, ImageButton, ToggleButton | text, onClick, backgroundTint |
| Container | CardView, ScrollView, RecyclerView | cardCornerRadius, clipToPadding |
| Erweitert | WebView, MapView, VideoView | loadUrl, zOrderOnTop |
Ein adaptives Layout ist ein Layout, das auf verschiedenen Bildschirmgrößen korrekt angezeigt wird: von kompakten Telefonen (320dp) bis zu großen Tablets (600dp+) und faltbaren Geräten. Layout Editor bietet mehrere Werkzeuge zum Überprüfen und Erstellen adaptiver Oberflächen.
Das erste Werkzeug ist Gerät für Vorschau in der Symbolleiste. Die Dropdown-Liste enthält gängige Geräte: Pixel 6, Pixel 9, Samsung Galaxy S25, Nexus 7, Nexus 9, Pixel C und andere. Sie können ein benutzerdefiniertes Gerät mit beliebiger Bildschirmgröße und Pixeldichte (dpi) hinzufügen. Das Umschalten zwischen Geräten dauert eine Sekunde und zeigt, wie das Layout auf jedem Bildschirm aussieht.
Das zweite Werkzeug sind Größenqualifizierer zum Erstellen alternativer Layouts. Im Layout Editor können Sie mehrere Versionen derselben XML-Datei für verschiedene Bildschirmgrößen, Ausrichtungen oder Dichten erstellen. Zum Beispiel eine activity_main.xml-Datei für Telefone und activity_main-sw600dp.xml für Tablets. Layout Editor zeigt automatisch eine Vorschau für den aktiven Qualifizierer an.
Der dritte Ansatz ist ConstraintLayout mit prozentualen Guidelines. Hilfslinien mit dem Attribut app:layout_constraintGuide_percent ermöglichen es, Elemente an prozentualen Positionen zu befestigen. Beispielsweise teilt eine Hilfslinie bei 50% den Bildschirm unabhängig von der Gerätegröße in zwei Hälften. Dies ist der flexibelste Weg, adaptive Layouts ohne Duplizieren von XML-Dateien zu erstellen.
Layout Editor zeigt auch Warnungen zu Anpassungsproblemen an: gelbe Dreiecke bei Elementen mit fester Breite, zu großen Bildern oder suboptimaler Verschachtelung. Der Entwickler kann auf eine Warnung klicken und eine Empfehlung zur Behebung erhalten.
Die Optimierung von Layouts wirkt sich direkt auf die Renderingsgeschwindigkeit und die Flüssigkeit der Anwendung aus. Layout Editor hilft, Probleme durch den integrierten Layout Inspector und Warnungen im Bereich Probleme zu erkennen. Die wichtigsten Optimierungsregeln: Minimierung der Verschachtelung, Verwendung von ConstraintLayout anstelle von verschachtelten LinearLayouts, Auswahl der richtigen Größenattribute.
Verschachtelungstiefe ist der Hauptfeind der Leistung. Jeder verschachtelte Container erhöht die Mess- und Zeichnungszeit. Das Werkzeug Hierarchieansicht in Android Studio zeigt den Layout-Baum. Wenn die Tiefe 5–6 Ebenen überschreitet, sollte das Layout umstrukturiert werden. ConstraintLayout löst dieses Problem, indem es 3–4 Verschachtelungsebenen durch einen einzigen flachen Container ersetzt.
Empfehlungen zur Optimierung von XML-Layouts im Layout Editor:
Layout Inspector ist ein Tool von Android Studio zur Profilerstellung von Layouts während der Laufzeit der Anwendung. Es zeigt die tatsächliche Hierarchie, die Mess- und Zeichnungszeit jeder Komponente an. Layout Editor ist in Layout Inspector integriert: Ein Doppelklick auf eine Warnung öffnet das entsprechende Problem in einem detaillierten Bericht.
Häufig gestellte Fragen
Layout Editor ist ein visueller XML-Layout-Editor, der in Android Studio integriert ist. Er ermöglicht es, die Benutzeroberfläche von Android-Apps zu erstellen, indem Komponenten auf die Leinwand gezogen, Attribute über das Eigenschaftenbedienfeld konfiguriert und das Ergebnis in Echtzeit angezeigt werden. Die Modi Design, Blueprint und Geteilt decken alle Phasen der Layoutentwicklung ab.
ConstraintLayout wird von Google für neue Projekte aufgrund seiner flachen Hierarchie und flexiblen Constraints empfohlen. LinearLayout ist nur für einfache lineare Abschnitte mit 2–3 Elementen ohne Verschachtelung gerechtfertigt. Sie können beide Ansätze in einem Layout kombinieren, indem Sie ConstraintLayout als Stammcontainer verwenden.
Bewegen Sie im Design-Modus den Mauszeiger über den Kreis am Rand eines Elements (für ConstraintLayout). Halten Sie die linke Maustaste gedrückt und ziehen Sie die Linie zum übergeordneten Element oder einem anderen Element, bis ein Einrasten erfolgt. Für die numerische Randeinstellung verwenden Sie das Eigenschaftenbedienfeld, Abschnitt Constraints. Constraints werden auch automatisch erstellt, wenn Autoconnect aktiviert ist.
Gelbe Warnungen weisen auf potenzielle Probleme hin: suboptimale Leistung (tiefe Verschachtelung, feste Größen), fehlende Inhaltsbeschreibung für Barrierefreiheit, hartcodierte Zeichenfolgen anstelle von strings.xml-Ressourcen. Jede Warnung enthält eine Empfehlung zur Behebung. Layout Editor hebt Elemente mit Problemen auch rot hervor, wenn der Fehler kritisch ist.
Verwenden Sie die Dropdown-Liste Gerät für Vorschau in der Symbolleiste des Layout Editors. Wählen Sie ein beliebiges Gerät aus der Liste aus oder fügen Sie ein benutzerdefiniertes mit beliebigen Abmessungen hinzu. Um die Anpassungsfähigkeit zu überprüfen, erstellen Sie alternative Layouts mit Qualifizierern (sw600dp, sw720dp) und wechseln Sie mit derselben Liste zwischen ihnen. Der Layout Inspector auf einem echten Gerät zeigt das endgültige Ergebnis.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch