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

And*_*Jay 155 xml android newline android-layout android-resources

似乎不可能在XML资源字符串中添加新行"/ n".还有另一种方法吗?

谢谢

jam*_*mes 354

使用黑色斜杠而不是前锋."\n"

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Hello\nWorld!</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

此外,如果您打算将字符串用作HTML,则可以使用&lt;br /&gt;换行符(<br />)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Hello&lt;br /&gt;World!</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

  • 对于html` <![CDATA [html_here]]>`也是一个不错的选择. (22认同)
  • 只是最近的更新:“\n”或“/n”在 strings.xml 文件中都不起作用。`&lt;br /&gt;` 也没有。然而,仅仅使用 `&lt;br /&gt;` 就可以完美地实现这一点!我测试它们只是为了确保,“&lt;br /&gt;”是唯一一个按预期工作的! (6认同)
  • 在strings.xml中,它只接受HTML格式,因此&lt; br /&gt; 是提供的适当解决方案 (2认同)

Dim*_*sio 50

我知道这是一个非常古老的问题,但当我搜索时它排在榜单之上.所以我想用另一种方法更新.

在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>
Run Code Online (Sandbox Code Playgroud)

这将导致TextView上的以下内容:

这是你的字符串.

这是你的字符串的第二行.

你的字符串的第三行.

这是因为在字符串的开始声明和新行之间有两个返回.为了清晰起见,我还添加了\n,因为它们都可以使用.我喜欢在xml中使用回车来查看列表或我拥有的任何多行字符串.我的两分钱.

  • 两个连续的换行符被(至少当前版本的)Android视为一个空格.https://github.com/paour/StringResourceTest (4认同)
  • 哦,这很有趣.感谢分享.此外,我觉得这个问题是个白痴,但看起来它已经帮助了很多人.大声笑!! (3认同)

Mah*_*rok 40

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

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

解决我的是br标签

<string name="successfullyfeatured">successfully<br/> You are now a member</string>
Run Code Online (Sandbox Code Playgroud)

更新

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

  • 这是这里唯一正确的答案 (3认同)

Pet*_*ter 14

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

<string name="newline_test">My
New line test</string>
Run Code Online (Sandbox Code Playgroud)

您应用中的输出将是这样的(没有换行)

My New line test
Run Code Online (Sandbox Code Playgroud)

当您将字符串放在引号中时

<string name="newline_test">"My
New line test"</string>
Run Code Online (Sandbox Code Playgroud)

换行符将出现:

My 
New line test
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人!

  • 将多行字符串用引号引起来效果很好。比在任何地方都放置“\n”要好得多(这很快就会变得不可读且令人困惑)。不用说,但以防万一:如果您想在文本中包含文字引号,则必须转义它:`\"` (2认同)

小智 7

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

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

  • 右侧没有图标,Shift-Enter 跳转到上面的下一个文本,至少在 ubuntu 上是这样。 (2认同)

小智 5

在最新版本的 Android Studio 中,“\n”将被打印出来,就像它应该在那里一样,除非整个字符串都在撇号中

例如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">"Hello\nWorld!"</string>
</resources>
Run Code Online (Sandbox Code Playgroud)


Bha*_*ani 5

我尝试了两种选择,既高效又简单。

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

并使用 "\n" 断行 示例

<string name="name_detail">
        Hey user.\n
        Enjoy a new shopping deal.!!
</string>
Run Code Online (Sandbox Code Playgroud)