Как добавить новую строку в TextView в Android?
когда я определяю TextView на xml, Как добавить к нему новую строку? n кажется, не работает.
<TextView
android:id="@+id/txtTitlevalue"
android:text="Line1: n-Line2n-Line3"
android:layout_width="54dip"
android:layout_height="fill_parent"
android:textSize="11px" />
26 ответов
Я думаю, что это имеет какое-то отношение к вашему HTM.fromHtml(subTitle) вызов: "\n " не означает bupkis для HTML. Попробуй!--1--> вместо "\n".
во-первых, поместите это в свой textview:
android:maxLines="10"
затем использовать \n в тексте вашего textview.
maxLines делает TextView не более этого количества строк высотой. Вы можете выбрать другой номер :)
пробовал все вышеизложенное, сделал некоторые собственные исследования, в результате чего следующее решение для рендеринга линии подачи escape chars:
string = string.replace("\\n", System.getProperty("line.separator"));
используя метод replace вам нужно фильтровать бежал linefeeds (например
'\\n')только тогда каждый экземпляр line feed
'\n'escape chars получает визуализацию в фактический linefeed
для этого примера я использовал Google Apps Scripting noSQL база данных (ScriptDb) с формированными данными JSON.
Ура: D
<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" />
Я думаю, это сработает.
Я просто решаю ту же проблему, помещаю ниже атрибуты в xml
android:lines="2" android:maxLines="4" android:singleLine="false"
работа.Html.fromHtml("text1 <br> text2").toString() также работать.
мои 2 цента, используя Android TV.
добавить \n в строках XML при чтении:
public void setSubtitle(String subtitle) {
this.subtitle = subtitle.replace("\n", System.getProperty("line.separator"));
}
один из способов сделать это с помощью Html теги::
txtTitlevalue.setText(Html.fromHtml("Line1"+"<br>"+"Line2" + " <br>"+"Line3"));
Если вы отладки, вы увидите, что строка на самом деле "\ \r\ \n" или "\ \n", т. е., он сбежал. Поэтому, если вы массируете эту строку, чтобы избавиться от лишнего \, у вас будет ваше решение. Это особенно актуально если Вы читаете из базы данных.
также вы можете добавить <br> вместо \n.
и затем вы можете добавить текст в TexView:
articleTextView.setText(Html.fromHtml(textForTextView));
нужно поставить \n в файле string.xml
<string name="strtextparkcar">press Park my Car to store location \n</string>
для меня решением было добавить в макет следующую строку:
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
...
>
и \n отображается как новая строка в визуальном редакторе. Надеюсь, это поможет!
ответ RuDrA05 хорош, когда я редактирую XML на eclipse, он не работает, но когда я редактирую XML с помощью notepad++, он работает.
то же самое происходит, если я читаю txt-файл, сохраненный с помощью eclipse или notepad++
возможно, связано с кодировкой.
Это прекрасно работает. Проверьте это для вашего приложения.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 1\nText 2\nText 3"/>
Примечание: заглавная надпись с помощью
android:inputType="textCapCharacters"
или подобное, кажется, останавливает \n работать.
Если TextView находится в любом макете (например, LinearLayout), попробуйте изменить атрибут orientation на vertical как
android:orientation="vertical" для макета или изменить TextView атрибут android:singleLine="true" создать новую строку после нее.