如图所示,文本框最多展示9行,如果超出则使用Scroll支持滑动。但在适配折叠屏过程中发现,计算所得高度不同。影响UI展示效果,如:文本高度不准确,滚动条过度展示等。
const size = MeasureText.measureTextSize({
textContent: "xxxxx",
fontSize: 16,
lineHeight: 16 + 3.5,
constraintWidth: 300,
})
console.debug(`文本高度计算:${size.height}`);
9行文字,高度计算
- 普通(Mate60): 174.46153846153845 ;
- 折叠屏:175.68
【问题】在不同设备上,通过+[MeasureText measureTextSize]得到的高度不同。
第一个问题:
不同设备的fp:px、vp:px值应该是不一样的,这个接口获取到的高度是px单位,文本高度应该是不同的;
第二个问题:文本行数,有文本高度了,demo是固定行高的,开发者可以自己计算行数吧,height/lineheight结果向上取整。如果一定要有API直接得到布局文本行数,需要走需求预审新增接口。
Text控件上有提供
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-text-V5\#导入对象
这个API 可以获取行数
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-text-common-V5\#getlinecount