Worauf bezieht sich “Grundlinie” im Zusammenhang mit einem relativen Layout? Einfache Frage, wahrscheinlich, aber die Dokumentation und Google bieten keine Hinweise.
Was ist die Grundlinie in RelativeLayout?
David Liu
Christian
Der Begriff Die Grundlinie stammt aus der Typografie. Es sind die unsichtbaren Linienbuchstaben im Text, auf denen sie sitzen.
Stellen Sie sich zum Beispiel vor, Sie setzen zwei TextView
Elemente nebeneinander. Den zweiten gibst du TextView
eine große Polsterung (z. B. 20 dp). Wenn Sie hinzufügen layout_alignBaseline
zum zweiten Element, “schiebt” sich der Text nach oben, um ihn an der Grundlinie des ersten Elements auszurichten. Der Text beider Elemente erscheint, als wären sie auf derselben unsichtbaren Linie geschrieben.
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/text1"
android:text="aatlg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:text="joof"
android:background="#00ff00"
android:padding="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/text1"
android:layout_alignBaseline="@id/text1"
/>
</RelativeLayout>
-
Das Hinzufügen eines erklärenden Bildes wäre großartig
– htafoya
9. Mai 2016 um 18:09 Uhr
-
Außerdem ist es standardmäßig wahr
– William Kinan
6. Oktober 2016 um 8:14 Uhr
Sebastian
Hier ist eine visuelle Erklärung, die Cristians Antwort verdeutlichen könnte:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/text1"
android:text="Lorem"
android:background="@android:color/holo_blue_light"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="Ipsum"
android:background="@android:color/holo_orange_light"
android:padding="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/text1"
android:layout_alignBaseline="@id/text1" />
</RelativeLayout>
Dieser Code sieht folgendermaßen aus:
Wenn ich jetzt die entferne android:layout_alignBaseline
-Attribut sieht das gleiche Layout so aus:
Es ist interessant zu beobachten, dass es einen Einfluss auf die Höhe der orangefarbenen Ansicht gibt (im ersten Fall ist die Polsterung nicht oben in der Ansicht angewendet).