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.


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.


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


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

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.


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.


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

2

Basta adicionar essas 2 linhas;

android:gravity="center_horizontal"
android:textAlignment="center"

1
android:layout_gravity="center"

ou

android:gravity="center"

ambos funcionam para mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.