当前位置:   article > 正文

第十二讲_ArkUI相对布局(RelativeContainer)_arkui 相对布局

arkui 相对布局

1. 相对布局概述

RelativeContainer 为相对布局的容器组件,支持容器内部的子元素设置相对位置关系。子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局。

锚点:通过锚点设置当前元素基于哪个元素确定位置。

  • 必须为RelativeContainer及其子元素设置ID
  • RelativeContainer的ID默认为__container__
  • 子元素的ID通过id属性设置
  • 未设置ID的子元素在RelativeContainer中不显示

2. 相对布局的使用

子元素通过alignRules属性设置锚点。在水平方向上,可以设置left、middle、right的锚点;在竖直方向上,可以设置top、center、bottom的锚点。

left、middle、right的锚点对齐方式:

  • HorizontalAlign.Start:水平方向首端对齐
  • HorizontalAlign.Center:水平方向中点对齐
  • HorizontalAlign.End:水平方向尾部对齐

top、center、bottom的锚点对齐方式:

  • VerticalAlign.Top:垂直方向顶部对齐
  • VerticalAlign.Center:垂直方式中点对齐
  • VerticalAlign.Bottom:垂直方向底部对齐
@Entry
@Component
struct RelativeLayout {
  build() {
    RelativeContainer() {
      Button("左上角的按钮")
        .id("btn1")
        .alignRules({
          // anchor:锚点的ID
          // align:对齐方式
          // 子组件的左边与父组件的水平方向首端对齐
          left: {anchor: "__container__", align: HorizontalAlign.Start}
        })
      Button("右上角的按钮")
        .id("btn2")
        .alignRules({
          // 子组件的右边与父组件的水平方向尾部对齐
          right: {anchor: "__container__", align: HorizontalAlign.End}
        })
      Button("左下角的按钮")
        .id("btn3")
        .alignRules({
          // 子组件的左边与父组件的水平方向首端对齐
          left: {anchor: "__container__", align: HorizontalAlign.Start},
          // 子组件的底部与父组件的垂直方向底部对齐
          bottom: {anchor: "__container__", align: VerticalAlign.Bottom}
        })
      Button("右下角的按钮")
        .id("btn4")
        .alignRules({
          // 子组件的右边与父组件的水平方向尾部对齐
          right: {anchor: "__container__", align: HorizontalAlign.End},
          // 子组件的底部与父组件的垂直方向底部对齐
          bottom: {anchor: "__container__", align: VerticalAlign.Bottom}
        })
    }
    .width("100%")
    .height("100%")
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

在这里插入图片描述

3. 子组件位置偏移量

子组件经过锚点相对位置对齐后,位置可能还不是目标位置,此时可以通过offset属性设置位置偏移量进行微调。

偏移量的参考点是自身

@Entry
@Component
struct RelativeLayout {
  build() {
    RelativeContainer() {
      Button("左上角的按钮")
        .id("btn1")
        .alignRules({
          // 子组件的左边与父组件的水平方向首端对齐
          left: {anchor: "__container__", align: HorizontalAlign.Start}
        })
        // 设置偏移量,在x轴的偏移量和y轴的偏移量
        .offset({
          x: 10,
          y: 10
        })
      Button("右上角的按钮")
        .id("btn2")
        .alignRules({
          // 子组件的右边与父组件的水平方向尾部对齐
          right: {anchor: "__container__", align: HorizontalAlign.End}
        })
      Button("左下角的按钮")
        .id("btn3")
        .alignRules({
          // 子组件的左边与父组件的水平方向首端对齐
          left: {anchor: "__container__", align: HorizontalAlign.Start},
          // 子组件的底部与父组件的垂直方向底部对齐
          bottom: {anchor: "__container__", align: VerticalAlign.Bottom}
        })
      Button("右下角的按钮")
        .id("btn4")
        .alignRules({
          // 子组件的右边与父组件的水平方向尾部对齐
          right: {anchor: "__container__", align: HorizontalAlign.End},
          // 子组件的底部与父组件的垂直方向底部对齐
          bottom: {anchor: "__container__", align: VerticalAlign.Bottom}
        })
    }
    .width("100%")
    .height("100%")
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/289435
推荐阅读
相关标签
  

闽ICP备14008679号