Qual è la differenza tra android:textAlignment
e android:gravity
?Allineamento testo/layout in Android (textAlignment, gravità)
risposta
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 è possibile utilizzare la gravità mentre è possibile utilizzare TextAlignment per tutte le viste.
Dato che TextView e le sue sottoclassi necessitano di più funzioni di allineamento del testo, è possibile vedere che ci sono più opzioni nella gravità in cui in TextAlignment ci sono solo opzioni di base. Anche se è solo mia supposizione perché non ho trovato alcuna documentazione chiara sulla differenza.
È possibile visualizzare questi due collegamenti di documentazione: textAlignment e gravity.
Per quanto ho visto TextAlignment sembra essere in gran parte inutilizzato. Per la sua descrizione, dovrebbe fare solo l'allineamento destro o sinistro. La gravità sembra essere un testo ottimizzato.
Con API 15, android:textAlignment
potrebbe non avere il risultato desiderato. Lo snippet seguente tenta di centrare il primo oggetto TextView
utilizzando android:textAlignment="center"
. Il secondo utilizza android:gravity="center_horizontal"
. Il textAlignment
non ha effetto mentre la gravità funziona bene. Con API 17+, textAlignment
centra il testo come previsto.
Per essere certi che il testo sia allineato correttamente con tutte le versioni, andrei con 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>
risultante layout in API 15:
risultante layout in API 17+: