wake-up-neo.com

Text- / Layoutausrichtung in Android (Textausrichtung, Schwerkraft)

Was ist der Unterschied zwischen Android:textAlignment und Android:gravity?

51
Chrizzor

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 .

48
stinepike

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:
Resulting layout in API 15

Resultierendes Layout in API 17+:
Resulting layout in API 17+

10
Will P

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.

5
Pedro Matos

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 ViewtextAlignment nicht für die Textpositionierung, während TextViewgravity funktioniert.

Ein weiterer Grund, gravity vorzuziehen.

2
laalto