HarmonyOS 鸿蒙Next ArkTs如何获取组件的宽高?
HarmonyOS 鸿蒙Next ArkTs如何获取组件的宽高?
ArkTs如何获取组件的宽高啊?有可参考资料吗?
8 回复
这个只能测试时用
注:ArkTS代码,API9下实测有效
使用组件通用事件onAreaChange()方法回调,在其中可获取组件的位置和尺寸数据,示例如下:
1、在页面文件中定义两个属性cw,ch代表组件宽、高,然后在相应组件后调用如下:
2、代码:(位置和 .onClick()同级),
.onAreaChange((oldValue: Area, newValue: Area) => {
this.cw = new Number(newValue.width).valueOf()
this.ch = new Number(newValue.height).valueOf()
})
另,因为newValue是Area类型变量,其中也可获取组件坐标 newValue.position.x 或 .y
这个只有在区域发生变化时才会触发,初始化时不会被触发
你试试,初始化时也有效的:) 实测 容器 Column,GridRow 及组件 Canvas 在初始化时都会执行onAreaChange(),从无到有也算是变化吧。。。
嗯,重启dev可以了,目前用的这方式
在HarmonyOS鸿蒙Next ArkTS中,获取组件的宽高可以通过以下几种方式:
- 布局属性设置:在布局文件中,可以直接设置组件的宽高属性,并通过布局逻辑间接获取。
- 编程获取:在ArkTS中,可以利用组件的API或方法,在组件渲染完成后通过编程方式获取宽高。这通常涉及到监听组件的某个事件或回调,然后在回调函数中通过API获取宽高。
- 布局管理器:如果使用了布局管理器,如Flex、Grid等,组件的宽高可能会由布局管理器自动计算并分配,此时可以通过布局管理器的相关属性或方法来间接获取组件的宽高。
如果问题依旧没法解决,请加我微信,我的微信是itying888。