Den*_*lov 11 xml android line-breaks aapt
我正在尝试使用多行常量(在/ res/values /文件夹下的.xml文件中定义),但似乎不可能在那里保留换行符 - 它们都在空格中转换.我试图使用字符串的"格式化"属性(将其设置为"true"和"false"),我也尝试在CDATA标记中包装字符串,如下所示:
<string name="str1">
A
B
C
</string>
<string name="str2" formatted="true">
A
B
C
</string>
<string name="str3" formatted="false">
A
B
C
</string>
<string name="str4"><![CDATA[
A
B
C
]]></string>
<string name="str5" formatted="true"><![CDATA[
A
B
C
]]></string>
<string name="str6" formatted="false"><![CDATA[
A
B
C
]]></string>
Run Code Online (Sandbox Code Playgroud)
所有这些字符串声明变体都会产生相同的结果 - 五个字符的字符串"AB C"(换行符被替换为单个空格).有什么方法可以避免这种情况吗?
PS我明白我可以使用"\n"来插入换行符,但无论如何,结果字符串将包含空格来代替实际的换行符; 即,遵循声明:
<string name="str1">
A\n
B\n
C\n
</string>
Run Code Online (Sandbox Code Playgroud)
产生字符串"A \n B \n C \n"(每个手动插入的换行符后跟恼人的空格).有没有解决方法?..
Jin*_*Jin 17
如果人们遇到此问题,\n
在XML字符串末尾插入会导致缩进.例如:
<string name="test">
A\n
B\n
C
</string>
Run Code Online (Sandbox Code Playgroud)
将显示为
A
B
C
Run Code Online (Sandbox Code Playgroud)
相反,您需要\n
在BEGINNING XML字符串处插入
<string name="test">
A
\nB
\nC
</string>
Run Code Online (Sandbox Code Playgroud)
这将导致新行正确显示.
Mor*_*oth 11
在每行末尾使用另一个反斜杠:
<string name="str1">
A\n\
B\n\
C\n\
</string>
Run Code Online (Sandbox Code Playgroud)
这样,您使用"\n"插入换行符,并在资源文件中转义行尾,以便它不会转换为空格.
仍然很难看,但它确实有效.
要从 XML 添加换行符,您需要添加“\n”。
这就是你的做法。
<string name="testing">A\nB\nC</string>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="4"
android:text="@string/testing"/>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
归档时间: |
|
查看次数: |
26752 次 |
最近记录: |