Tae-Sung Shin
Tae-Sung Shin

Reputation: 20633

how can I display multiple lines of text on a button

My button's layout_width set to match_parent.

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

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.

Upvotes: 48

Views: 54806

Answers (3)

geo
geo

Reputation: 527

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.

Upvotes: 2

wannik
wannik

Reputation: 12696

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.

Upvotes: 88

hovanessyan
hovanessyan

Reputation: 31433

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>

Upvotes: 28

Related Questions