大家看看这个设置Label组件只显示三行的方法可以吗?

需求是这样的:文本框只显示1、2、3行,多于三行的截取后加上省略号显示;Label宽度是固定的,显示模式为:RESIZE_HEIGHT

目前的解决方案是这样的:
(1)当前文本计为text;
(2)按照一个中文字符对应两个英文字符的规则,计算三行都满行时的字符数,计为max;
(3)循环text的每个字符,计算字符数量sum,并将循环到的字符加入字符串text2;如果循环时sum大于等于max-2,则停止本步骤,并向text2加入省略号;
(4)让Label显示text2,然后运行_updateRenderData(true)方法;获取行高height;如果行高大于三行时的行高,则从text2中移出最后一个字符(sum等于max-2时则移出倒数第二个字符),继续本步骤;否则结束。

大家看看这个方法怎么样?还可以优化吗?
文本一般都是2行,很少有多余3行的情况,而且只有一个文本框需要这样处理,所以暂时不考虑性能问题。

编码完成了,效果不错,虽然费效率

方法可行,优化一下其他字符,就可以使用了。