Relatives Layout

Schreiben Sie jetzt
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Hier erfahren Sie, wie Sie in „Compose“ mit Layouts arbeiten.
<ph type="x-smartling-placeholder"></ph> ConstraintLayout in Compose →

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.