1、例如一句话 a sdf sdfsdf sdfsdgd (sdf : sdf a) 。使用自动换行时,有什么办法让 () 里的内容包括 () 被看成一个整体,不被拆开换行。
2、如图:

目前自动换行对于长单词会自动到下一行,对于这种用括号括起来的整体不被拆开换行应该如何处理。
3、可以 \n 手动换行,但是文本内容比较多有没有更好的方案?
可以用代码在每一个(前加上\n 然后输出,然后在复制回lable组件里
() 这个位置不固定,有的在句中,有的句首,有的句末
肯定先遍历所有()的位置,然后在添加
目前文案内容比较多,Label 设置的是宽度固定,高度动态适配,() 的位置也是在文案里随机的。1、如果 () 整体本身就在同一行,这个就不需要强制 \n 换行,目前想做的是将 () 识别成一个整体,类似长单词一样,让 label 自动识别不被换行。
切割出来算宽度,判断要不要加换行
如果括号里内容一行放不下怎么办
(帖子被作者删除,如无标记将在 24 小时后自动删除)
这个就相当于手动换行了,在需要换行的地方加 \n
暂时不存在这种情况,策划的意思就是不想手动调文案,让代码识别() 为一个整体,不被拆分换行
如果都是英文,估计一行放多少个字符,算下要不要(换行
代码计算不算是手动添加吧
是的,目前做的多语言,文案很多,策划不想一个一个调整,让代码识别 () 为一个整体自动换行。目前 Label 我看是长单词会自动识别为一个整体,一行放不下会自动到下一行,单词不会被拆分
问ai吧,这种手写的算法很容易踩坑
可以在 ( 前面加空格, 英文添加空格之后 后面的单词会被标记为整单词, 换行就会换下一行
代码里面写这种算法不太建议,要不写个脚本批量处理json文本吧,算一下一行容纳字符和括号的数量,做好判断条件应该问题不大,自动添加换行编码。这样可行性高一点吧
空格是有的,我刚试了下不管是一个空格还是半个空格都不会识别为整体
protectParentheses(text: string): string {
return text.replace(/([^)]*)/g, (match) => {
return <nobr>${match}</nobr>;
});
}富文本用这个可以生效
印象中3.x应该是是text-utils.ts这个文件 可以在richText新增个属性 比如是否开启()按整体换行 在需要的地方开启这个就行 实现逻辑在text-utils.ts里面照抄英文单词逻辑就行 还有就是文本会不会有(123(456)789) 这种嵌套需求 有的话要特别处理下 如果没有 那其实和英文单词应该没有区别
3.8.8 富文本 (132:234,444) 不生效 