Как добавить новую строку в TextView в Android? - PullRequest
236 голосов
/ 15 мая 2010

Когда я определяю TextView в xml, как мне добавить в него новую строку? \n, кажется, не работает.

<TextView
   android:id="@+id/txtTitlevalue"
   android:text="Line1: \n-Line2\n-Line3"
   android:layout_width="54dip"
   android:layout_height="fill_parent"
   android:textSize="11px" />

Ответы [ 27 ]

282 голосов
/ 16 мая 2010

Не доверяйте визуальному редактору.Ваш код работает в эму.

72 голосов
/ 18 марта 2011

Попробуйте:

android:lines="2"

\n должно работать.

43 голосов
/ 30 апреля 2012

попробуй System.getProperty("line.separator");

34 голосов
/ 18 марта 2011

Я думаю, что это как-то связано с вашим вызовом HTM.fromHtml(subTitle): "\ n" не означает bupkis для HTML. Попробуйте <br/> вместо "\ n".

19 голосов
/ 30 сентября 2011

Сначала добавьте это в текстовое представление:

android:maxLines="10"

Затем используйте \n в тексте вашего текстового представления.

maxLines делает TextView не более чем на столько строк. Вы можете выбрать другой номер:)

16 голосов
/ 30 апреля 2013

Попробовал все вышеперечисленное, провел несколько собственных исследований, в результате чего было получено следующее решение для рендеринга escape-символов перевода строки:

string = string.replace("\\\n", System.getProperty("line.separator"));
  1. Используя метод замены, вам нужно отфильтровать экранированный перевод строки (например, '\\\n')

  2. Только тогда каждый экземпляр перевода строки '\n' escape-символы выводится в фактический перевод строки

В этом примере я использовал базу данных noSQL сценариев Google Apps (ScriptDb) с данными в формате JSON.

Приветствия: D

10 голосов
/ 18 мая 2014
<TextView
   android:id="@+id/txtTitlevalue"
   android:text="Line1: \r\n-Line2\r\n-Line3"
   android:layout_width="54dip"
   android:layout_height="fill_parent"
   android:textSize="11px" />

Я думаю, что это сработает.

8 голосов
/ 18 марта 2011

Убедитесь, что ваш \n в "\n" для его работы.

8 голосов
/ 03 января 2013

Я просто решаю ту же проблему, поместите ниже атрибуты в xml

android:lines="2" android:maxLines="4" android:singleLine="false"

работа. Html.fromHtml("text1 <br> text2").toString() работа тоже.

7 голосов
/ 18 ноября 2013

Это решило мою проблему.

stringVar.replaceAll("\\\\n", "\\\n");
...