2011-09-06 19 views
115

So che sembra facile. Ho bisogno di mettere un testo al centro, ma quando il testo è troppo lungo deve andare sotto, ma allinearlo ancora al centro del mio xml.allineare il centro di testo con Android

Ecco il mio codice:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/showdescriptioncontenttitle" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    android:layout_centerHorizontal="true" 
> 
    <TextView 
     android:id="@+id/showdescriptiontitle" 
     android:text="Title" 
     android:textSize="35dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    /> 
</LinearLayout> 

ho messo paddingTop ed inferiore perché ho bisogno di un pò di spazio. PS: il mio codice è più grande; è in un RelativeLayout.

risposta

311

Impostare anche il parametro android:gravity in TextView a center.

Per testare gli effetti di diversi parametri di layout, si consiglia di utilizzare colori di sfondo diversi per ogni elemento, in modo da poter vedere come il layout cambia con parametri come gravità, layout_gravity o altro.

+0

Grazie, ha funzionato, solo bisogno di un po 'di tempo per valida la risposta! – Tsunaze

+1

E ho visto che Android: layout_centerHorizontal = "true" non è più necessario .. – Tsunaze

+0

Sì, è vero. Ma penso solo se TextView ha più di una linea. Perché con solo 1 riga di testo non completa, il TextView non riempirà il layout orizzontalmente –

4

È possibile utilizzare il seguente:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/showdescriptioncontenttitle" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp"> 

<TextView 
     android:id="@+id/textview1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="Your text" 
     android:typeface="serif" /> 
</LinearLayout> 

Il layout deve essere relativo per la proprietà "centro" per essere utilizzato.

14

uso in questo modo in xml

<TextView 
     android:id="@+id/myText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Time is precious, so love now." 
     android:gravity="center" 
     android:textSize="30dp" 
     android:textColor="#fff" 
     /> 
4

Aggiunta android:gravity="center" nella tua TextView farà il trucco (sia il layout genitore è Relative/Linear)!

Inoltre, si dovrebbe evitare di usare dp per la dimensione del font. Usa invece SP.

1

add layout_gravity e gravità con valore centrale sul TextView

<TextView 
    android:text="welcome text" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    android:gravity="center" 
    /> 
Problemi correlati