似乎不可能向/n
XML 资源字符串添加新行。还有另一种方法吗?
21 回答
使用黑斜杠而不是正斜杠。 \n
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello\nWorld!</string>
</resources>
此外,如果您打算将字符串用作 HTML,则可以使用<br />
换行符(<br />
)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello<br />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 中使用回车来查看列表或我拥有的任何多行字符串。我的两分钱。
在我尝试下一个解决方案之后
- 添加
\n
- 后面
\n
不加空格 - 在文本中使用
""
并按Enter - 按Enter的文本
- 采用
lines=2
解决我的是br
标签
<string name="successfullyfeatured">successfully<br/> You are now a member</string>
更新
最可靠的解决方案是使用翻译编辑器和编辑文本,它会为您处理新行
这是一个老问题,但我发现当您创建这样的字符串时:
<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 添加换行符。
这将\n
在本地化的 strings.xml 中正确插入。
在最新版本的 Android Studio 中,“\n”将被打印出来,除非整个字符串都在撇号中
例如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">"Hello\nWorld!"</string>
</resources>
我尝试了两种选择,既高效又简单。
- 我使用
<br/>
了 HTML 标签
<string name="name_detail">
Hey user. <br/>
Enjoy a new shopping deal.!!
</string>
- 在 strings.xml 的顶部添加一个编码行
<?xml version="1.0" encoding="utf-8"?>
并使用 "\n" 换行示例
<string name="name_detail">
Hey user.\n
Enjoy a new shopping deal.!!
</string>
如果在 xml 文件中的字符串中放入“\n”,则将其视为“\\n”
所以我做了 :
text = text.Replace("\\\n", "\n"); ( text is taken from resX file)
然后我在屏幕上得到一个跳线
\n 后面不要加空格,否则不起作用。我不知道原因,但这个技巧对我很有效。
我刚遇到这个问题。不适TextView
用于约束参数。添加android:lines="2"
似乎可以解决此问题。
我试过 1-Top word \n
Bottom word 2-Top word ENTER Bottom word
没用最后 <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/>
仅适用于设计,不适用于正在运行的应用程序。
仅适用于\n
运行应用程序而不适用于设计
,因此如果您想同时获得两种结果,解决方案是同时使用两者。
像这样的东西
\n<br/>
例子:
Hello \n<br/>World.
设计模式下的结果:
Hello\n
World。
结果运行应用程序:
Hello
World。
非常简单,您只需将
\n
放在您想要在字符串资源中换行的地方。
例如
String s = my string resource have \n line break here;
\n tag worked in the strings.xml file
例如:
<string name="hello">Hello World &\nWelcome</string>
输出:
Hello World &
Welcome
笔记:
- 确保不要在
\n
"的前后添加空格 - 即使在运行应用程序时它在 UI 的预览窗口中没有显示新行,它也会显示在下一行中。
要在设计选项卡中查看换行符并在我使用的设备中查看:
<br/><br/>\n\n
(至 2 条断线)
尽管对于那些使用反斜杠但仍然在其布局中看到\n的人来说,实际问题仍然是正斜杠。
好吧,我起初也对为什么\n在布局中不起作用感到困惑,但似乎当您在实际设备中实际看到该布局时,它会创建一个换行符,因此无需担心它在布局显示屏幕上显示的内容休息将在设备上完美运行。
迟到的答案,但我认为可能会帮助某人。
您有时会在 android studio 的布局预览中的 textview 中看到\n 。(但它就在那里)。请刷新布局。
或者将您的应用程序部署到真正的 Android 设备,以查看\n实际在 android 字符串资源中工作。
你可以使用这种格式
<string name="test">
"This is
a new line"
</string>
你试过把它关掉再打开吗 ?!
这是一个非常古老的问题,但似乎没有其他答案表明这一点。
可能是 android studio 上的布局预览没有正确显示 textView。因此,您可以尝试退出 android studio 并再次启动它。
我想如果在计算机处于睡眠/休眠等状态时打开 android studio 可能会发生这种情况。
无论如何,值得一试。