measureTextSize的测量参数不清晰

问题1:baselineOffset为number时候的默认单位不清晰问题2:lineHeight为number时候的默认单位不清晰问题3:未详细介绍constraintWidth、maxLines、lineHeight彼此之间的关系,是否有互斥关系?是否有结合关系?他们最终到底应该怎么使用,文档均未描述,Demo也是很简单的示例代码,不足以看出来这几个参数的用法例如如下代码:

text: string = "123456789 123456789 123456789 123456789\n123456789 123456789 123456789 123456789\n123456789\n12345678" 
textSize: SizeOptions = measure.measureTextSize({ 
  textContent: this.text, 
  fontSize: '50px', 
  constraintWidth: px2vp(50), 
  maxLines: 2, 
  lineHeight: px2vp(100) 
})

测量出来的宽度为50px,高度为200px,但是很明显,这么一块区域不足以放得下前两行文字。

HarmonyOS
2024-06-03 22:59:33
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
JKings

问题1:没有指定单位的,默认都是vp问题2:lineHeight为number的单位是vp问题3:constraintWidth是限制宽度、maxLines是最大行数、lineHeight是行高,并不互斥。共同构成被计算文本的显示区域,使用的方法参考代码

text: string = "123456789 123456789 123456789 123456789\n123456789 123456789 123456789 123456789\n123456789\n123456789" 
@State textWidth : SizeOptions = measure.measureTextSize({ 
  textContent: this.text, 
  fontSize: '50px', 
  constraintWidth: 50, 
  maxLines: 3, 
  lineHeight: 50 
})

上面的代码,constraintWidth和lineHeight默认的单位都是vp,输入结果:Text("The width of text: " + px2vp(this.textWidth.width as number))Text("The height of text: " + px2vp(this.textWidth.height as number))显示的结果宽为50,高为150,因为输出的单位是px,当把px转换为vp后,就能跟参数对上,宽度是constraintWidth的值50,高度是lineHeight*maxLines值为150。

分享
微博
QQ
微信
回复
2024-06-04 22:07:16
相关问题
关于measureTextSize用法
345浏览 • 1回复 待解决
基于measure实现文本测量
198浏览 • 1回复 待解决
如何测量获取控件高宽
356浏览 • 1回复 待解决
如何保证振弦传感器测量精度?
2262浏览 • 0回复 待解决
播放器API-timeUpdate-时间单位不清
607浏览 • 1回复 待解决
51CTO不能把上传图片搞清晰一点吗?
2496浏览 • 2回复 待解决
如何使用NavigationnavPathStack参数
264浏览 • 1回复 待解决
PolarDB MySQL 参数有哪些?
1800浏览 • 1回复 待解决
从ArkTs向Native传复杂参数---List参数
399浏览 • 1回复 待解决
taskPool参数支持Function类型吗
630浏览 • 1回复 待解决
hilogprivate参数不起作用
4768浏览 • 1回复 待解决
关于JS http请求参数传递问题
6069浏览 • 2回复 待解决
greenplumshared_buffers参数设置
3253浏览 • 1回复 待解决
关于 onArrange中获取到参数问题
3688浏览 • 1回复 待解决
如何使用hdc shell aa start参数
349浏览 • 1回复 待解决
鸿蒙如何获得手机屏幕参数
3134浏览 • 1回复 待解决
自定义参数BuildProfile问题汇总
409浏览 • 1回复 待解决
如何获取router.back传递参数
1228浏览 • 1回复 待解决