对于我这种懒人,网上居然不能直接搜到解决办法,太难过了。
华为开发者社区里找,也没办法看到直观的结果。
所以在这里记录一下方便后面的懒人。
Harmony里获取组建坐标用到的是组件标识里的getInspectorByKey()。
这个方法返回的是一串JSON字符串,所以可以用JSON.parse()解析。
先给需要获取坐标的组件加上标识,也就是.id()。
这里以.id("pos")为例:
通过getInspectorByKey("pos"),可以获取到组件"pos"所有的属性。
坐标数据在$attrs.position里。
通过JSON.parse(getInspectorByKey("pos"))可以获取到一个JSON对象,我们再在这里面找我们需要的属性就行了。
例如:
var pos = JSON.parse(getInspectorByKey("pos"))
x轴坐标是
pos["$attrs"]["position"]["x"]
y轴坐标是
pos["$attrs"]["position"]["y"]
获取到的内容会是"xxvp",只要把后面的字符"vp"去掉,剩下数值的转换成number,就可以用于运算之类的。
顺带一提,有些子组件坐标默认(0,0),虽然看他不在(0,0)。