HarmonyOS 鸿蒙Next MeasureText

HarmonyOS 鸿蒙Next MeasureText 用MeasureText.measureText测量文案的宽度,为什么设置maxLines=1或者2,都是一样的结果

let tempWidth1 = px2vp(MeasureText.measureText({
  textContent: "测试测试测试测试测试测试测试测试测试测试测试测试测试测试",
  fontSize: 16,
  maxLines: 1,
  constraintWidth: 100
}));

let tempWidth2 = px2vp(MeasureText.measureText({
  textContent: "测试测试测试测试测试测试测试测试测试测试测试测试测试测试",
  fontSize: 16,
  maxLines: 2,
  constraintWidth: 100
}));

console.error("flag", "width=" + tempWidth1 + ", width=" + tempWidth2)

更多关于HarmonyOS 鸿蒙Next MeasureText的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

建议使用MeasureText.measureTextSize来测量文案的宽度

根据文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V14/js-apis-measure-V14#measureoptions

constraintWidth是设置被计算文本布局宽度。默认单位为vp,不支持设置百分比字符串。若不设置,则文本SizeOption宽度为单行布局所占最大宽度值,若设置则为设置值。

不论是MeasureText.measureText还是MeasureText.measureTextSize只是用来测单行布局所占最大宽度值的,无法根据设置的行数去改变宽度值 系统规格如此

更多关于HarmonyOS 鸿蒙Next MeasureText的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


那为啥会把maxLine属性放出来?是有其他用处嘛?

maxlines 是设置被计算文本最大行数。你这2个 width 都是1行的情况下 maxLine=2 没生效。你可以增加 textContent 长度试一试。

maxLines 参数是用来计算文本高度

```typescript
let textSize2 : SizeOptions = measure.measureTextSize({ textContent: this.textContent, fontSize: this.textFontSize, maxLines: 1, constraintWidth: "100" });
let textSize3 : SizeOptions = measure.measureTextSize({ textContent: this.textContent, fontSize: this.textFontSize, maxLines: 2, constraintWidth: "100" });
console.log("---height textSize2:" + px2vp(textSize2.height as number) +"---height textSize3:" +  px2vp(textSize3.height as number))
---height textSize2:18.76923076923077---height textSize3:37.53846153846154,

在HarmonyOS中,MeasureText是一个用于测量文本宽度和高度的API。它通常用于在UI开发中确定文本的显示尺寸,以便进行布局调整。MeasureText可以返回文本的宽度、高度以及基线等信息,帮助开发者精确控制文本的显示效果。

在鸿蒙Next中,MeasureText的功能与之前版本保持一致,但可能在某些性能优化和精度上有所提升。开发者可以通过调用TextMetrics类中的相关方法来获取文本的测量结果。例如,使用getTextWidthgetTextHeight方法可以分别获取文本的宽度和高度。

需要注意的是,MeasureText的测量结果可能会受到字体、字号、字间距等因素的影响。因此,在实际使用中,开发者需要根据具体的UI需求来调整这些参数,以确保文本的显示效果符合预期。

总结来说,MeasureText在HarmonyOS中是一个用于测量文本尺寸的重要工具,开发者可以通过它来精确控制文本的显示布局。

回到顶部