alinhar o centro de texto com o android

149

Eu sei que parece fácil. Preciso colocar um texto no centro, mas quando o texto é muito longo, ele precisa ir abaixo, mas ainda alinhar no centro do meu xml.

Aqui está o meu código:

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

Coloquei paddingTop e Bottom porque preciso de algum espaço. PS: Meu código é maior; está em um RelativeLayout.

Tsunaze
fonte
Aqui você não usou nenhum estilo de texto
Dinith 03/11/19

Respostas:

380

Defina também o android:gravityparâmetro TextViewpara center.

Para testar os efeitos de diferentes parâmetros de layout, recomendo usar cores de fundo diferentes para cada elemento, para que você possa ver como o layout muda com parâmetros como gravidade, layout_gravity ou outros.

peter.bartos
fonte
Obrigado, funcionou, só precisa de um tempo para validar sua resposta!
Tsunaze 6/09/11
Sim, é verdade. Mas acho que apenas se o TextView tiver mais de uma linha. Porque com apenas 1 linha não cheia de texto, o TextView não vai encher o layout horizontal
peter.bartos
Você pode evitar isso através da criação de TextView Android: layout_width = "fill_parent"
peter.bartos
2
Não deve ser confundido android:layout_gravity. Doh! :)
Joshua Pinter
29

use desta maneira

txt.setGravity(Gravity.CENTER);
bhargavkumar040
fonte
21

use dessa maneira em 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"
        />
sakshi
fonte
7

Você pode usar o seguinte:

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

O layout precisa ser relativo para a propriedade "center" a ser usada.

gsb
fonte
5

Adicionar android:gravity="center"seu TextView fará o truque (seja o layout principal Relative/Linear)!

Além disso, você deve evitar o uso de dp para o tamanho da fonte. Use sp em vez disso.

Divya
fonte
3

adicione layout_gravity e gravidade com valor central no TextView

<TextView
    android:text="welcome text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    />
Mubin
fonte
2

Basta adicionar essas 2 linhas;

android:gravity="center_horizontal"
android:textAlignment="center"
Ramandeep Singh
fonte
1
android:layout_gravity="center"

ou

android:gravity="center"

ambos funcionam para mim.

Dinith
fonte