how can I display multiple lines of text on a butt

2020-02-18 02:45发布

问题:

My button's layout_width set to match_parent.

In order to display multi lines on the button, I tried:

  • insert '\n' into the text on button

  • set Singleline false set Maxlines to 2 or 3

  • convert html from Html.fromHtml

Nothing worked. '\n' showed up as a small square on the button while showing single line of text.

Does anybody have any idea why this is happening and how I can fix this?

UPDATE: I just found out I was using custom button that has its own text drawing. That's the reason. Sorry for the confusion. I just punished myself by banging my head.

回答1:

If you're trying to add a new line in a layout XML file:

Use 
 (new line)

    android:text="Hi
Hello"

If you're trying to add a new line in code, just use '\n', same as in any other text.

If you can't see the second line, it may be that your Button doesn't have enough height. IE, in my case, the layout containing the button had a fixed height that just happened to make my button perfectly display one line of text.



回答2:

I just tried and it worked:

1) Define in ../res/values/strings.xml:

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

2) Refer it in the layout file:

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


回答3:

In case you want to do that programmaticaly you can use System.getProperty("line.separator") in the string to change lines. Like this:

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

and then set this String as buttons text.