文本测量需要支持 lineSpacing 和 lineHeight,
并未发现 C++ 层 NativeDrawing 模块有提供对应的设置属性
有 fontHeight 属性,但不是 lineHeight
没有 lineSpacing 属性,FontMetric 需要等测量之后才能获取
lineSpacing 和 lineHeight 对标 Text 组件上的属性
文本测量需要支持 lineSpacing 和 lineHeight,
并未发现 C++ 层 NativeDrawing 模块有提供对应的设置属性
有 fontHeight 属性,但不是 lineHeight
没有 lineSpacing 属性,FontMetric 需要等测量之后才能获取
lineSpacing 和 lineHeight 对标 Text 组件上的属性
1 回答897 阅读✓ 已解决
1 回答1.2k 阅读
1 回答1k 阅读
1 回答985 阅读
1 回答967 阅读
1 回答852 阅读
1 回答812 阅读
接口不是一一对应的, 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