Relatives Layout

Funktion „Schreiben“ ausprobieren
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Hier erfahren Sie, wie Sie in der Funktion „Compose“ mit Layouts arbeiten.

RelativeLayout ist eine Ansichtsgruppe, in der untergeordnete Ansichten in relativen Positionen angezeigt werden. Die Position jeder Ansicht kann als relativ zu gleichgeordneten Elementen (z. B. links oder unter einer anderen Ansicht) oder als relativ zum übergeordneten RelativeLayout-Bereich (z. B. unten, links oder zentriert) angegeben werden.

Hinweis:Für eine bessere Leistung und bessere Toolunterstützung sollten Sie stattdessen Ihr Layout mit „ConstraintLayout“ erstellen.

Ein RelativeLayout ist ein sehr leistungsstarkes Dienstprogramm beim Entwerfen einer Benutzeroberfläche, da es verschachtelte Ansichtsgruppen eliminieren und die Layouthierarchie flach halten kann, was die Leistung verbessert. Wenn Sie mehrere verschachtelte LinearLayout-Gruppen verwenden, können Sie sie möglicherweise durch ein einzelnes RelativeLayout-Objekt ersetzen.

Positionierung von Ansichten

Mit RelativeLayout können untergeordnete Ansichten ihre Position relativ zur übergeordneten Ansicht oder zueinander (durch die ID angegeben) angeben. So können Sie z. B. zwei Elemente am rechten Rand ausrichten oder ein Element untereinander platzieren, zentriert auf dem Bildschirm oder links zentriert. Standardmäßig werden alle untergeordneten Ansichten oben links im Layout gezeichnet. Definieren Sie daher die Position jeder Ansicht mithilfe der verschiedenen Layouteigenschaften, die in RelativeLayout.LayoutParams verfügbar sind.

Zu den vielen Layouteigenschaften, die für Ansichten in einem RelativeLayout verfügbar sind, gehören:

android:layout_alignParentTop
Bei "true" stimmt der obere Rand dieser Ansicht mit dem oberen Rand der übergeordneten Ansicht überein.
android:layout_centerVertical
Wenn "true" festgelegt ist, wird das untergeordnete Element vertikal innerhalb des übergeordneten Elements zentriert.
android:layout_below
Positioniert den oberen Rand dieser Ansicht unterhalb der Ansicht, die mit einer Ressourcen-ID angegeben wird.
android:layout_toRightOf
Positioniert den linken Rand dieser Ansicht rechts neben der Ansicht, die mit einer Ressourcen-ID angegeben wird.

Dies sind nur einige Beispiele. Alle Layoutattribute sind unter RelativeLayout.LayoutParams dokumentiert.

Der Wert für jede Layouteigenschaft ist entweder ein boolescher Wert, um eine Layoutposition relativ zum übergeordneten RelativeLayout zu aktivieren, oder eine ID, die auf eine andere Ansicht im Layout verweist, gegenüber der die Ansicht positioniert werden soll.

In Ihrem XML-Layout können Abhängigkeiten zu anderen Ansichten im Layout in beliebiger Reihenfolge deklariert werden. Sie können beispielsweise deklarieren, dass „view1“ unter „view2“ platziert wird, auch wenn „view2“ die letzte in der Hierarchie deklarierte Ansicht ist. Das folgende Beispiel veranschaulicht ein solches Szenario.

Beispiel

Alle Attribute, die die relative Position jeder Ansicht steuern, sind hervorgehoben.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp" >
    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/reminder" />
    <Spinner
        android:id="@+id/dates"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/name"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/times" />
    <Spinner
        android:id="@id/times"
        android:layout_width="96dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/name"
        android:layout_alignParentRight="true" />
    <Button
        android:layout_width="96dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/times"
        android:layout_alignParentRight="true"
        android:text="@string/done" />
</RelativeLayout>

Weitere Informationen zu allen Layoutattributen, die in den einzelnen untergeordneten Ansichten einer RelativeLayout verfügbar sind, finden Sie unter RelativeLayout.LayoutParams.