web-dev-qa-db-fra.com

comment afficher plusieurs lignes de texte sur un bouton

La disposition layout_width de mon bouton est définie sur match_parent.

Afin d'afficher plusieurs lignes sur le bouton, j'ai essayé:

  • insérer '\ n' dans le texte du bouton

  • définir la ligne de faux faux définir Maxlines sur 2 ou 3

  • convertir html à partir de Html.fromHtml

Rien n'a fonctionné. '\ n' apparaissait comme un petit carré sur le bouton tout en affichant une seule ligne de texte.

Quelqu'un at-il une idée de pourquoi cela se produit et comment je peux résoudre ce problème?

MISE À JOUR: Je viens de découvrir que j'utilisais un bouton personnalisé qui a son propre dessin de texte. C'est la raison. Désolé pour la confusion. Je viens de me punir en me cognant la tête.

46
Tae-Sung Shin

Si vous essayez d'ajouter une nouvelle ligne dans un fichier XML de mise en page:

Utilisation 
 (nouvelle ligne)

    Android:text="Hi
Hello"

Si vous essayez d'ajouter une nouvelle ligne dans le code, utilisez simplement '\ n', comme dans tout autre texte.

Si vous ne voyez pas la deuxième ligne, il se peut que votre bouton n'ait pas assez de hauteur. IE, dans mon cas, la disposition contenant le bouton avait une hauteur fixe qui venait juste de faire que mon bouton affiche parfaitement une ligne de texte.

81
wannik

Je viens d'essayer et cela a fonctionné:

1) Définissez dans ../res/values/strings.xml:

<string name="multilines">Line1Line1\nLine2Line2</string>

2) Reportez-le dans le fichier de mise en page:

<Button
    Android:id="@+id/btn_multilines"
    Android:text="@string/multilines"
    Android:layout_height="wrap_content"
    Android:layout_width="fill_parent">
</Button>
28
hovanessyan

Dans le cas où vous souhaitez le faire par programme, vous pouvez utiliser System.getProperty("line.separator") dans la chaîne pour modifier les lignes. Comme ça:

String mybuttontext=line1+System.getProperty("line.separator")+line2;

puis définissez cette chaîne comme texte de boutons.

1
geo