字符串资源新行/n不可能?

在XML资源字符串中添加新行/n似乎是不可能的。还有别的办法吗?

211531 次浏览

使用黑斜线而不是正斜线。\n

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello\nWorld!</string>
</resources>

另外,如果你计划将字符串作为HTML使用,你可以使用&lt;br /&gt;作为换行符(<br />)

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello&lt;br /&gt;World!</string>
</resources>

我知道这是一个很老的问题,但当我搜索时,它位居榜首。所以我想用另一种方法进行更新。

在strings.xml文件中,你可以输入\n或者简单地按enter键:

<string name="Your string name" > This is your string.


This is the second line of your string.\n\n Third line of your string.</string>

这将导致以下在你的TextView:

这是你的绳子。

这是弦的第二行。

你的绳子的第三行。

这是因为在字符串的开始声明和新行之间有两个返回值。为了清晰起见,我还添加了\n,因为两者都可以使用。我喜欢在xml中使用回车,以便能够看到列表或任何多行字符串。我的意见。

如果你在xml文件的字符串中输入“\n”,它会被当作“\\n”

所以,我做了:

text = text.Replace("\\\n", "\n");   ( text is taken from resX file)

然后我在屏幕上有一个跳转

很简单,你只要写
\ n

例如

String s = my string resource have \n line break here;

这是一个老问题,但我发现当你创建一个这样的字符串时:

<string name="newline_test">My
New line test</string>

在你的应用程序中的输出将是这样的(没有换行)

My New line test

当你把字符串放在引号里

<string name="newline_test">"My
New line test"</string>

换行符将出现:

My
New line test

当在Android Studio中使用翻译编辑器时,只需单击右边的图标(在Windows中使用Shift-Enter,在MacOS中使用Alt/Option-Enter),然后使用return添加换行符。

这将在本地化的strings.xml中正确插入\n

在最新版本的Android studio中,"\n"会像它应该在那里一样被打印出来除非整个字符串是撇号

例如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">"Hello\nWorld!"</string>
</resources>

我想扩展答案。 他们的意思是这个图标:

编辑器窗口按钮

它打开了一个“真正的编辑器窗口”,而不是大概览中的有限功能文本框。在该编辑器窗口中,允许特殊字符、换行符等,并在保存时转换为正确的xml“代码”

我只是面对这个问题。 不能在带有约束参数的TextView上工作。添加android:lines="2"似乎可以解决这个问题

不要在\n后面加空格,否则行不通。我不知道原因,但这招对我很管用。

在我尝试下一个解决方案之后

  • 添加\n
  • 添加\n,后面不加空间
  • 使用""并在文本内按输入
  • text,按输入
  • 使用lines=2

解决我的是br标签

<string name="successfullyfeatured">successfully<br/> You are now a member</string>

更新

最可靠的解决方案是使用翻译编辑器编辑文本,它将为您处理新行

只要使用"\n"在你的strings.xml文件中,如下所示

<string name="relaxing_sounds">RELAXING\nSOUNDS</string>

即使它在布局上看起来不是两行,实际上它就是两行。首先,你可以在翻译编辑器中检查它

enter image description here

单击向下按钮,您将看到此图像

enter image description here

此外,如果你运行应用程序,你会看到它写在两行。

虽然实际的问题是正斜杠仍然使用那些反斜杠,但仍然看到\ n在他们的布局。

嗯,我一开始也很困惑,为什么\ n在布局中不工作,但似乎当你在是一个实际的设备,它创建了一个换行符,所以不用担心中看到该布局时,它在布局显示屏上显示你的换行符将在设备上工作得非常好。

你试过关机再开机吗?! 这是一个非常古老的问题,但似乎没有其他答案表明这一点。< br > 这可能是android工作室的布局预览没有正确显示textView。 所以你可以尝试退出android studio并再次启动它 我猜这可能会发生,如果android工作室是打开的,而计算机在睡眠/休眠等 不管怎样,值得一试

\n tag worked in the strings.xml file

例如:

 <string name="hello">Hello World &amp;\nWelcome</string>

输出:

Hello World &
Welcome

注意:

  • 确保你没有在\n"前后添加空格;
  • 当你运行应用程序时,即使它不在UI预览窗口的新行上显示,它也会在下一行中显示。

我尝试了两种选择,都是有效和简单的。

  1. 我使用<br/> HTML标签
<string name="name_detail">
Hey user. <br/>
Enjoy a new shopping deal.!!
</string>
  1. 在strings.xml的顶部添加编码行
<?xml version="1.0" encoding="utf-8"?>

和使用"\n"断线 示例< / p >

<string name="name_detail">
Hey user.\n
Enjoy a new shopping deal.!!
</string>

要在设计选项卡中看到换行符和我使用的设备:

<br/><br/>\n\n

(到2个断行)

我已经试过了 \n下面的单词 2 .顶部单词输入底部单词

< p >不工作 最后<br/>工作为我在android studio

事实上,正确的使用方法是\n,尽管在构建应用程序之后可能会看到它完成。
只对设计有影响,对应用没有影响

<string name="available_balance">Available\nBalance</string> //Look good on the app and Available\nBalance in android studio
<string name="available_balance">Available<br/>Balance</string> //Look good in android studio and Available Balance on the App
最后,我找到了解决方案。 <br/>只在设计上工作,它在running app中不起作用。
\n只在running app上工作,而在design上不起作用 所以如果你想同时得到两个结果,解决方案就是两个都用 像这样

\n<br/>

例子:

Hello \n<br/>World.

设计模式结果:
你好\ n
世界。< / p >

Result in running app:
.输出说明 你好
世界。< / p >

回答晚了,但我想可能会对某人有所帮助。

你有时会在android studio的布局预览的textview中看到\ n。(但那是谎言)。
.请刷新布局 或者将你的应用部署到一个真正的Android设备上,看看\ n在Android字符串资源中实际工作

您可以使用这种格式

<string name="test">
"This is
a new line"
</string>