risposta-alla-domanda-sullo-sviluppo-web-bd.com

Allineamento testo / layout in Android (TextAlignment, gravity)

Qual è la differenza tra Android:textAlignment e Android:gravity?

51
Chrizzor

Tutto quello che posso vedere è che textAlignment è un membro della classe View e la gravità è il membro della classe TextView. Quindi per TextView e le sue sottoclassi puoi usare la gravità mentre puoi usare textAlignment per tutte le viste.

Dato che TextView e le sue sottoclassi necessitano di alcune funzionalità di allineamento del testo, puoi vedere che ci sono più opzioni in gravità dove in TextAlignment ci sono solo opzioni di base. Anche se è solo una mia ipotesi perché non ho trovato alcuna documentazione chiara sulla differenza.

Puoi vedere questi due link della documentazione: textAlignment e gravità .

48
stinepike

Con API 15, Android:textAlignment potrebbe non avere il risultato desiderato. Lo snippet di seguito tenta di centrare il primo oggetto TextView usando Android:textAlignment="center". Il secondo usa Android:gravity="center_horizontal". textAlignment non ha alcun effetto mentre la gravità funziona bene. Con API 17+, textAlignment centra il testo come previsto.

Per essere certo che il tuo testo sia allineato correttamente con tutte le versioni, andrei con la gravità.

<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>

Layout risultante nell'API 15:
Resulting layout in API 15

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

10
Will P

Per quanto ho visto textAlignment sembra essere in gran parte inutilizzato. Con la sua descrizione, dovrebbe fare solo l'allineamento a destra o a sinistra. La gravità sembra essere un allineamento testuale migliorato.

5
Pedro Matos

Un altro punto non esplicitamente menzionato:

Se l'applicazione ha il supporto RTL disabilitato con ad es. Android:supportsRtl="false" in manifest application tag, quindi ViewtextAlignment non funziona per il posizionamento del testo mentre TextViewgravity funziona.

Ancora un altro motivo per preferire gravity.

2
laalto