web-dev-qa-db-fra.com

Android TextView avec plusieurs lignes

Je veux un TextView qui devrait être divisé en 4 lignes. Par exemple.

Vishal Vyas
  Having
   342
Reputation

Notez que la gravité devrait être center_horizontal

J'ai essayé de suivre:

<TextView
    Android:gravity="center_horizontal"
    Android:id="@+id/lblUserRep"
    Android:layout_width="70dp"
    Android:layout_height="wrap_content"
    Android:lines="4"
    Android:maxLines="4"
    Android:text="VishalVyas Having 342 Reputation" >
</TextView>

Cela marche! mais produit la sortie suivante:

VishalVyas
  Having
   342
Reputation

Problèmes:

  1. Cela ne fonctionne pas avec l'espace entre les mots Vishal et Vyas.
  2. Android:layout_width="70dp" est harcodé et il peut y avoir n'importe quel nom avec n nombre de caractères au lieu de VishalVyas.

S'il vous plaît des conseils.

Ajouté: Ce serait bien si j'ai besoin d'écrire une variable TextView pour y parvenir, mais je demanderai quelques indications.

Merci d'avance.

15
Vishal Vyas

Je pense que c'est emballant parce que "Vishal Vyas" va au-delà de 70dp. Faites plutôt wrap_content sur la largeur et utilisez des caractères de nouvelle ligne pour les lignes au lieu d’un retour à la ligne (par exemple, "Vishal Vyas\n342\nRéputation")

14
DeeV

Vous devriez pouvoir insérer le caractère de nouvelle ligne \n pour contrôler où vont les divisions. Une fois que vous avez fait cela, vous pouvez élargir votre TextView afin qu’il puisse contenir un nom d’utilisateur plus long tout en conservant le bon emplacement.

11
Blumer
Android:lines="2"
Android:minLines="2"
Android:singleLine="false"

Même si Android Studio avertit que Android:singleLine=false est obsolète, conservez-le et vous pouvez avoir le nombre de lignes souhaité pour leur zone de texte en fonction de la longueur de leur texte

5
James Bond

Je l'ai fait:

Le conteneur de TextView: 

    Android:layout_width="match_parent"
    Android:layout_height="match_parent"

Le TextView:

    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"

Ensuite,

Le texte de TextView a été montré en deux lignes ou plus ...

1
Vicente Domingos