HarmonyOS鸿蒙NEXT应用开发中模拟器中连续换行符显示不全,只显示一个怎么办

HarmonyOS鸿蒙NEXT应用开发中模拟器中连续换行符显示不全,只显示一个怎么办 如
“我是测试我是测试我是测试\n\n我是测试第二部分我是测试第二部分。\n\n我是测试第三部分。我是测试第三部分。”
想要的显示效果如下
我是测试我是测试我是测试

我是测试第二部分我是测试第二部分。

我是测试第三部分。我是测试第三部分。

实际的显示效果是:
我是测试我是测试我是测试
我是测试第二部分我是测试第二部分。
我是测试第三部分。我是测试第三部分。

示例代码如下:
 

private str:string='我是测试我是测试我是测试\n\n\n\n\n\n我是测试第二部分我是测试第二部分。\n\n我是测试第三部分。我是测试第三部分。'

Text(){
  Span(this.str.slice(0,5)).fontColor('#00ff00')
  Span(this.str.slice(5,this.str.length))
}

更多关于HarmonyOS鸿蒙NEXT应用开发中模拟器中连续换行符显示不全,只显示一个怎么办的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

用真机试一下呢,我这边真机是ok的

更多关于HarmonyOS鸿蒙NEXT应用开发中模拟器中连续换行符显示不全,只显示一个怎么办的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙NEXT模拟器中,连续换行符显示不全通常因Text组件默认启用了文本截断或最大行数限制。请检查组件的maxLines属性,将其设为-1(不限行数)或使用ScrollableText组件。同时确认textOverflow未设置ClipEllipsis。若问题依旧,请核对模拟器API版本是否为最新。

鸿蒙的Text组件默认会折叠连续的换行符,将多个\n合并为一个,导致多余空行消失。可以通过在连续换行符之间插入零宽空格\u200B来保留空行效果,且不影响文本内容显示。修改字符串如下:

private str: string = '我是测试我是测试我是测试\n\n\n\n\n\n我是测试第二部分我是测试第二部分。\n\n我是测试第三部分。我是测试第三部分。';
// 替换连续换行为 \n + 零宽空格 + \n
this.str = this.str.replace(/\n\n/g, '\n\u200B\n');

然后再用Span正常拼接即可看到预期的空行效果。,

回到顶部