265

当我定义 a TextViewin 时xml,如何向其中添加新行?\n似乎不起作用。

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

31 回答 31

318

不要相信可视化编辑器。您的代码在鸸鹋中确实有效。

于 2010-05-16T04:51:25.940 回答
90

尝试:

android:lines="2"

\n应该管用。

于 2011-03-18T01:41:03.580 回答
45

尝试System.getProperty("line.separator");

于 2012-04-30T05:35:31.643 回答
41

我认为这与您的HTM.fromHtml(subTitle)电话有关:“\n”并不意味着对 HTML 的 bupkis。尝试<br/>代替“\n”。

于 2011-03-18T06:53:17.817 回答
22

首先,把它放在你的文本视图中:

android:maxLines="10"

然后\n在你的文本视图的文本中使用。

maxLines 使 TextView 最多有这么多行高。您可以选择其他号码 :)

于 2011-09-30T14:17:58.487 回答
22

尝试了以上所有方法,我自己进行了一些研究,得出了以下用于渲染换行符转义字符的解决方案:

string = string.replace("\\\n", System.getProperty("line.separator"));
  1. 使用您需要过滤转义换行符的替换方法(例如'\\\n'

  2. 只有这样,每个换行符转义字符实例'\n'才会被渲染到实际的换行符中

对于此示例,我使用了带有 JSON 格式数据的 Google Apps Scripting noSQL 数据库 (ScriptDb)。

干杯:D

于 2013-04-29T20:03:18.320 回答
11

确保您\n可以"\n"正常工作。

于 2011-03-18T01:38:10.247 回答
10
<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" />

我认为这会奏效。

于 2014-05-18T11:59:08.620 回答
9

我只是解决了同样的问题,把下面的属性放在xml中

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

工作。Html.fromHtml("text1 <br> text2").toString()也工作。

于 2013-01-03T10:49:43.067 回答
8

我的 2 美分,使用 Android TV。

添加\nXML 字符串,同时阅读:

public void setSubtitle(String subtitle) {
    this.subtitle = subtitle.replace("\\n", System.getProperty("line.separator"));
}
于 2015-10-12T20:51:55.457 回答
8

一种方法是使用Html标签::

txtTitlevalue.setText(Html.fromHtml("Line1"+"<br>"+"Line2" + " <br>"+"Line3"));
于 2016-12-15T17:03:20.417 回答
7

这解决了我的问题。

stringVar.replaceAll("\\\\n", "\\\n");
于 2013-11-18T10:04:18.637 回答
6

System.getProperty("line.separator");这对我有用。

于 2014-12-16T16:19:01.400 回答
5

您也可以添加 &lt;br&gt;而不是\n.

然后你可以向 TexView 添加文本:

articleTextView.setText(Html.fromHtml(textForTextView));
于 2011-07-19T09:50:11.373 回答
5

如果你调试,你会看到这个字符串实际上是"\ \r\ \n"or "\ \n",即它被转义了。因此,如果您按摩那根绳子,以摆脱多余的\,您将获得解决方案。如果您正在从数据库中读取数据,则尤其如此。

于 2011-08-10T18:45:32.403 回答
5

您需要将文件放入不在页面布局内"\n"的文件中。strings.xml

于 2012-07-16T04:33:13.413 回答
4

需要保持

1.android:maxLines="no of lines"

2.并\n用于获取下一行

于 2013-02-21T09:27:22.947 回答
4

对我来说,解决方案是将以下行添加到布局中:

<LinearLayout
    xmlns:tools="http://schemas.android.com/tools"
    ...
    >

\n 在可视化编辑器中显示为新行。希望能帮助到你!

于 2018-05-20T22:21:28.470 回答
3

你需要把\n文件string.xml

<string name="strtextparkcar">press Park my Car to store location \n</string>
于 2014-03-16T12:09:15.290 回答
3
 android:text="Previous Line &#10; Next Line" 

这将起作用。

于 2018-07-23T16:54:24.593 回答
3

试试这个:

android:text="Lorem Ipsum \nDolor Ait Amet \nLorem Ipsum"
于 2019-11-26T09:28:20.687 回答
2

这工作正常。检查您的应用程序。

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 1\nText 2\nText 3"/>
于 2016-03-18T07:33:50.380 回答
2

你试一试:

Textview_name.settext("something \n  new line "):

在 Java 文件中。

于 2019-06-26T19:01:31.400 回答
1

确保您正在使用your_package.R 而不是android.R

于 2013-01-13T19:15:29.833 回答
1

RuDrA05 的回答很好,当我在 eclipse 上编辑 XML 时它不起作用,但是当我用 notepad++ 编辑 XML 时它确实起作用。

如果我读取用 eclipse 或 notepad++ 保存的 txt 文件,也会发生同样的事情

也许与编码有关。

于 2014-06-18T02:37:24.263 回答
1

旁注:使用大写文本

android:inputType="textCapCharacters"

或类似的似乎停止\n工作。

于 2017-02-14T12:17:05.007 回答
0

对于 TextView 中的新行,只需在文本中间添加\n即可。

于 2015-07-09T12:08:50.153 回答
0

如果 TextView 在任何布局中(例如,LinearLayout),请尝试将方向属性更改为垂直 android:orientation="vertical"布局,或更改TextView属性android:singleLine="true"以在其后创建新行。

于 2016-08-23T11:47:15.933 回答
0

以编程方式: myTV.setText("My Text" + "\n" + myString);

于 2020-05-02T21:34:16.370 回答
0

在 stings.xml 中创建一个字符串

<resources>
    ...
    <string name="new_line">\u000A</string>
</resources>

然后在你的代码中引用字符串

val linkString = "This is in the first line.${getString(R.string.new_line)}This is on the second line."
于 2020-05-25T17:24:04.903 回答
0

转到值>字符串里面添加字符串

选择您的类别"\n"观看

使用 "\n" 添加新行

然后在文本视图中添加字符串名称

android:text="@string/category"

于 2020-07-20T10:52:44.117 回答