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
.