как отобразить несколько строк текста на кнопке

layout_width моей кнопки установлен в match_parent.

чтобы отобразить несколько строк на кнопке, я попытался:

  • вставить 'n ' в текст на кнопке

  • установить Singleline false установить Maxlines в 2 или 3

  • преобразование html из Html.fromHtml

ничего не получалось. "n " появился как маленький квадрат на кнопке, показывая одну строку текста.

тут кто-нибудь знает, почему это происходит и как я могу это исправить?

UPDATE: я только что узнал, что использую пользовательскую кнопку с собственным текстовым рисунком. Вот почему. Извините за беспорядок. Я просто наказал себя, ударившись головой.

3 ответов


Если вы пытаетесь добавить новую строку в XML-файл макета:

использовать 
 (новая строка)

    android:text="Hi
Hello"

Если вы пытаетесь добавить новую строку в коде, просто используйте '\n', как и в любом другом тексте.

Если вы не видите вторую строку, возможно, ваша кнопка не имеет достаточной высоты. Т. е. в моем случае макет, содержащий кнопку, имел фиксированную высоту, которая просто заставила мою кнопку отлично отображать одну строку текста.


Я просто попытался, и это сработало:

1) Определить ../ res / значения / строки.XML-код:

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

2) обратитесь к нему в файле макета:

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

Если вы хотите сделать это программно, вы можете использовать System.getProperty("line.separator") в строке для изменения строк. Вот так:

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

и затем установите эту строку в качестве текста кнопок.