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用法
300浏览 • 1回复 待解决
基于measure实现文本测量
146浏览 • 1回复 待解决
如何测量获取控件高宽
325浏览 • 1回复 待解决
如何保证振弦传感器测量精度?
2120浏览 • 0回复 待解决
51CTO不能把上传图片搞清晰一点吗?
2254浏览 • 2回复 待解决
播放器API-timeUpdate-时间单位不清
457浏览 • 1回复 待解决
从ArkTs向Native传复杂参数---List参数
324浏览 • 1回复 待解决
PolarDB MySQL 参数有哪些?
1647浏览 • 1回复 待解决
如何使用NavigationnavPathStack参数
203浏览 • 1回复 待解决
hilogprivate参数不起作用
4603浏览 • 1回复 待解决
taskPool参数支持Function类型吗
499浏览 • 1回复 待解决
关于 onArrange中获取到参数问题
3477浏览 • 1回复 待解决
如何使用hdc shell aa start参数
296浏览 • 1回复 待解决
鸿蒙如何获得手机屏幕参数
2999浏览 • 1回复 待解决
自定义参数BuildProfile问题汇总
356浏览 • 1回复 待解决
如何获取router.back传递参数
1025浏览 • 1回复 待解决
greenplumshared_buffers参数设置
3105浏览 • 1回复 待解决
关于JS http请求参数传递问题
5932浏览 • 2回复 待解决