RelativeLayout
ist eine Ansichtsgruppe, in der untergeordnete Ansichten relativ
Positionen. Die Position jeder Ansicht kann relativ zu gleichrangigen Elementen angegeben werden (z. B. zu
links von oder unter einer anderen Ansicht) oder an Positionen relativ zum übergeordneten RelativeLayout
-Bereich (z. B. unten, links oder mittig) ausgerichtet werden.
Hinweis: Für eine bessere Leistung und Unterstützung für Tools sollten Sie stattdessen Ihr Layout mit ConstraintLayout erstellen.
RelativeLayout
ist ein sehr leistungsstarkes Dienstprogramm zum Entwerfen einer Benutzeroberfläche.
da dadurch verschachtelte Ansichtsgruppen eliminiert und die Layouthierarchie flach gehalten werden können.
die Leistung. Wenn Sie mehrere verschachtelte LinearLayout
-Gruppen verwenden,
können Sie sie möglicherweise durch einen einzelnen RelativeLayout
ersetzen.
Ansichten positionieren
Mit RelativeLayout
können untergeordnete Ansichten ihre Position relativ zum
übergeordneten Ansicht oder sich gegenseitig (durch die ID angegeben). So können Sie zwei Elemente anhand des rechten Rahmens
werden untereinander, auf dem Bildschirm zentriert, links zentriert usw. Standardmäßig werden alle untergeordneten
Ansichten werden oben links im Layout gezeichnet, daher müssen Sie die Position jeder Ansicht festlegen.
mithilfe der verschiedenen Layouteigenschaften von RelativeLayout.LayoutParams
.
Einige der vielen Layout-Eigenschaften, die für Ansichten in einem RelativeLayout
verfügbar sind
umfassen:
android:layout_alignParentTop
- Bei
"true"
entspricht der obere Rand dieser Ansicht dem oberen Rand der übergeordneten Ansicht. android:layout_centerVertical
- Bei
"true"
wird das untergeordnete Element vertikal innerhalb des übergeordneten Elements zentriert. android:layout_below
- Positioniert den oberen Rand der Ansicht unter der durch eine Ressourcen-ID angegebenen Ansicht.
android:layout_toRightOf
- Positioniert den linken Rand der 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 Layout-Eigenschaft ist entweder ein boolescher Wert,
eine Layoutposition relativ zum übergeordneten RelativeLayout
oder einer ID zu aktivieren, die
verweist auf eine andere Ansicht im Layout, gegenüber der die Ansicht positioniert werden soll.
In Ihrem XML-Layout können Abhängigkeiten von anderen Ansichten im Layout in beliebiger Reihenfolge deklariert werden. Beispielsweise können Sie festlegen, dass „view1“ unterhalb von „view2“ positioniert werden auch wenn „view2“ ist die letzte in der Hierarchie deklariert ist. Das folgende Beispiel zeigt ein solches Szenario.
Beispiel
Alle Attribute, die die relative Position der einzelnen Ansichten steuern, werden 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 für die einzelnen untergeordneten Ansichten eines RelativeLayout
verfügbar sind, findest du unter RelativeLayout.LayoutParams
.