web-dev-qa-db-fra.com

Comment centrer un texte de deux lignes dans un TextView sur Android?

Je veux que cela ressemble à ceci:

|    two    |
|   lines   |

Voici la mise en page actuelle, ne fonctionne pas du tout.

<RelativeLayout
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:gravity="center_vertical">
    <TextView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="two\nlines"
        Android:layout_gravity="center_vertical"
        Android:layout_centerInParent="true"/>
</RelativeLayout>

Une idée? Merci!

68
shiami

Si vous voulez juste le centrer (je suppose que le \n travaille à diviser les lignes), ajoutez simplement Android:gravity="center_horizontal" au lieu de layout_gravity.
L'utilisation de la gravité de la présentation déplace le TextView réel, l'utilisation de la gravité affecte le contenu du TextView.

200
kcoppock

Doit ajouter à la fois gravity et layout_gravity pour aligner TextView et son contenu

Android:gravity="center_horizontal"
Android:layout_gravity="center_horizontal"
12
kishor.j

si votre largeur est wrap_content, vous devez définir gravité et layout_gravity sur "center_horizontal".

<TextView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="two\nlines"
    Android:layout_gravity="center_horizontal"
    Android:gravity="center_horizontal"/>

Cependant, si votre largeur est "match_parent", il vous suffira de régler la gravité sur "center_horizontal"

<TextView
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:text="two\nlines"
    Android:gravity="center_horizontal"/>

J'espère que ça aide!

3
Shivam

Vous pouvez utiliser:

TextView tv = (TextView) findViewById(R.id.the_text_view);
tv.setText(Html.fromHtml("two"+"\n"+"lines"));
2
Dleelk4android

Je pense que vous devez le faire depuis Java:

<RelativeLayout
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:gravity="center_vertical">
    <TextView
        Android:id="@+id/the_text_view"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center_vertical"
        Android:layout_centerInParent="true"/>
</RelativeLayout>

Ensuite:

TextView tv = (TextView) findViewById(R.id.the_text_view);
tv.setText(Html.fromHtml("two<br/>lines"));
1
Cristian

J'utilise:

Android:gravity="center_horizontal"

centrer le texte de deux lignes

0
Dea Venditama