HarmonyOS 文本高度计算需求?

如图所示,文本框最多展示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]得到的高度不同。

阅读 435
1 个回答

第一个问题:

不同设备的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