HarmonyOS C++ NativeDrawing未提供对应Text组件的lineSpacing和lineHeight接口?

文本测量需要支持 lineSpacing 和 lineHeight,

并未发现 C++ 层 NativeDrawing 模块有提供对应的设置属性

有 fontHeight 属性,但不是 lineHeight

没有 lineSpacing 属性,FontMetric 需要等测量之后才能获取

lineSpacing 和 lineHeight 对标 Text 组件上的属性

阅读 470
1 个回答

接口不是一一对应的, lineHeight 和 lineSpaceing是组件开出去的接口,ArkUI经过计算还是要给我们设置 fontHegiht。

如果设置了fontHegiht ,fontHeight * fontSize 就等于我们这边的行高,所以如果想要设置具体的行高,那就计算好传入fontHeight 就好了。

简单说就是,字体本身没有 lineHeight 和 lineSpaceing接口。 设置好fontHegiht可以达到相同的效果。

尝试一下以下计算方法:

设置lineHeight未设置lineSpaceing: heightscale = lineHeight / fontsize

未设置lineHeight设置lineSpaceing: heightscale = 1+ lineSpaceing/ fontsize

设置lineHeight设置lineSpaceing:heightscale = lineHeight / fontsize + lineSpaceing/ fontsize

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进