Was ist der Unterschied zwischen Android:textAlignment
und Android:gravity
?
Alles, was ich sehen kann, ist, dass die textAlignment ein Mitglied der View-Klasse und die Schwerkraft das Mitglied der TextView-Klasse ist. Für die TextView und ihre Unterklassen können Sie also die Schwerkraft verwenden, während Sie die textAlignment für alle Ansichten verwenden können.
Da die TextView und ihre Unterklassen einige weitere Textausrichtungsfunktionen benötigen, sehen Sie, dass es in Bezug auf die Schwerkraft mehr Optionen gibt, während es in textAlignment nur grundlegende Optionen gibt. Obwohl es nur meine Vermutung ist, weil ich keine eindeutige Dokumentation über den Unterschied gefunden habe.
Sie können diese beiden Links der Dokumentation sehen: Textausrichtung und Schwerkraft .
Mit API 15 hat Android:textAlignment
Möglicherweise nicht das gewünschte Ergebnis. Das folgende Snippet versucht, das erste TextView
Objekt mit Android:textAlignment="center"
Zu zentrieren. Der zweite verwendet Android:gravity="center_horizontal"
. Das textAlignment
hat keine Auswirkung, wohingegen die Schwerkraft gut funktioniert. Mit API 17+ zentriert textAlignment
den Text wie erwartet.
Um sicherzugehen, dass Ihr Text bei allen Veröffentlichungen korrekt ausgerichtet ist, würde ich mich für die Schwerkraft entscheiden.
<LinearLayout
Android:layout_width="50dp"
Android:layout_height="match_parent"
Android:orientation="vertical">
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="5dp"
Android:text="Fri"
Android:textAlignment="center"
Android:textSize="16sp" />
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="29"
Android:gravity="center_horizontal"
Android:textSize="18sp" />
</LinearLayout>
Resultierendes Layout in API 15:
Resultierendes Layout in API 17+:
Soweit ich textAlignment gesehen habe, scheint es meistens unbenutzt zu sein. Nach seiner Beschreibung sollte es nur rechts oder links ausrichten. Die Schwerkraft scheint eine verbesserte Textausrichtung zu sein.
Ein weiterer Punkt, der nicht ausdrücklich erwähnt wird:
Wenn in Ihrer Anwendung die RTL-Unterstützung deaktiviert ist, z. Android:supportsRtl="false"
Im Manifest-Tag application
funktioniert View
textAlignment
nicht für die Textpositionierung, während TextView
gravity
funktioniert.
Ein weiterer Grund, gravity
vorzuziehen.