HarmonyOS RelativeContainer 经过offset设置的锚点位置坐标不能作为锚点,怎么办?

​比如说A组件经过了锚点配置了位置,此时A组件有一个坐标pos1,经过offset设置了新的位置pos2,B组件想要基于A的新位置pos2做标定,必须要将A组件的offset一并加上才能达到在pos2基础上做标定。

比如说下面三个组件,想要达成的效果是年龄和个人信息之间相差13,性别和年龄之间间隔13,但是实际上却是这三个组件之间的间隔为0。​

Row() { 
  Text('个人信息') 
    .fontColor(Color.White) 
    .fontSize(14) 
    .alignRules({ 
      left: { anchor: 'row1', align: HorizontalAlign.Start }, 
      center: { anchor: 'row1', align: VerticalAlign.Center } 
    }) 
    .offset({ 
      x: 13, 
      y: 0, 
    }) 
    .id("person_info_text") 
 
  Button('年龄') 
    .fontSize(12) 
    .aspectRatio(1.857) 
    .alignRules({ 
      left: { anchor: "person_info_text", align: HorizontalAlign.End }, 
      center: { anchor: 'row1', align: VerticalAlign.Center } 
    }) 
    .offset({ 
      x: 13, 
      y: 0, 
    }) 
    .id("age_btn") 
 
  Button('性别') 
    .fontSize(12) 
    .aspectRatio(1.857) 
    .alignRules({ 
      left: { anchor: "age_btn", align: HorizontalAlign.End }, 
      center: { anchor: 'row1', align: VerticalAlign.Center } 
    }) 
    .offset({ 
      x: 13, 
      y: 0, 
    }) 
    .id("gender_btn")
HarmonyOS
2024-11-27 10:37:28
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

RelativeContainer经过offset设置的锚点位置还是之前没有偏移的位置,所以后面的组件参考的位置还是偏移前的位置,所以要实现上面的效果需要这样设置:

.offset({ 
  x: 13, 
  y: 0, 
}) 
  .offset({ 
    x: 26, 
    y: 0, 
  }) 
  .offset({ 
    x: 39, 
    y: 0, 
  })
分享
微博
QQ
微信
回复
2024-11-27 14:36:13
相关问题
HarmonyOS ArkTS如何实现跳转功能?
280浏览 • 1回复 待解决
如何可以获取组件中心坐标
714浏览 • 1回复 待解决
模拟器不能启动该怎么办啊?
395浏览 • 1回复 待解决
权限设置没有落地页,怎么办
303浏览 • 1回复 待解决
redis 内存满了怎么办
3708浏览 • 3回复 待解决
状态栏设置颜色失效该怎么办啊?
1927浏览 • 1回复 待解决
无法使用hdc命令怎么办
3176浏览 • 1回复 待解决
Gradle依赖缓存被损坏怎么办
14301浏览 • 5回复 待解决
中奖码忘了保存怎么办
5605浏览 • 1回复 待解决
Web嵌套滑动卡顿怎么办
222浏览 • 1回复 待解决
多个模块依赖出现冲突,怎么办
188浏览 • 1回复 待解决
xml没有自动补全,要怎么办
7887浏览 • 3回复 待解决