当前位置: 首页 > article >正文

【HarmonyOS NEXT开发】如何设置水平/垂直方向的左/居中/右对齐——RelativeContainer的AlignRules设置

在这里插入图片描述
在这里插入图片描述

文章目录

    • 【HarmonyOS NEXT开发】如何设置水平/垂直方向的左/居中/右对齐——RelativeContainer的AlignRules设置
        • RelativeContainer 和 AlignRules 的关系
        • AlignRules 语法详解

【HarmonyOS NEXT开发】如何设置水平/垂直方向的左/居中/右对齐——RelativeContainer的AlignRules设置

RelativeContainer 和 AlignRules 的关系

RelativeContainer 是一种布局容器,允许您根据容器内部的其他元素或容器本身来定义组件的相对位置。使用 RelativeContainer 可以更灵活地安排组件之间的关系,而不需要明确指定组件的绝对位置。
AlignRules是为了对RelativeContainer这一弹性布局容器中的子容器设置对齐规则。

AlignRules 语法详解
RelativeContainer(){
  Row(){
    Text('未知用户')
      .margin({right:10})
    Text('待完善')
      .border({
        width:1,
        color:'#3274f6',
        style:BorderStyle.Solid
      })
  }
  .alignRules({
    top:{
      anchor:'__container__',
      align:VerticalAlign.Top
    },
    middle:{
      anchor:'__container__',
      align:HorizontalAlign.Center
    }
  })
}
  • 代码示例中的top,middlealignRules中的属性,分别表示了该组件的上下左右边界以及水平和竖直的中心轴,具体的表示规则如下:

在这里插入图片描述

  • anchor指的是锚点,即子容器相对于哪个容器进行布局,__container__表示容器本身,如果说需要相对于其他的子容器进行布局,也可以在其他的子容器上设置id,并且设置该id的锚点。
// 第一个组件:按钮,位于容器顶部居中
Button('按钮1')
  .id('button1') // 设置组件的 id 为 'button1'
  .alignRules({
    top: {
      anchor: '__container__', // 相对于容器顶部
      align: VerticalAlign.TOP
    },
    center: {
      anchor: '__container__', // 相对于容器水平居中
      align: HorizontalAlign.CENTER
    }
  })

// 第二个组件:文本,位于按钮的下方并水平居中
Text('这是相对按钮1的文本')
  .alignRules({
    top: {
      anchor: 'button1', // 相对于 'button1' 的下方
      align: VerticalAlign.BOTTOM
    },
    center: {
      anchor: '__container__', // 水平居中对齐
      align: HorizontalAlign.CENTER
    }
  })
  • 水平方向和竖直方向的排布规则:
    请添加图片描述
    总结:该代码的含义是,首先通过anchor做相对定位,然后让组件的top/center/bottom/start/middle/end 去与 容器在水平或竖直方向对应的轴 对齐

因此,如果想让组件在容器的顶部居中,对应的alignRules应为:

.alignRules({
      top:{
         anchor:'__container__',
         align:VerticalAlign.Top
       },
       middle:{
         anchor:'__container__',
         align:HorizontalAlign.Center
       }
     })

在这里插入图片描述


http://www.kler.cn/a/308916.html

相关文章:

  • 自动化工具 Gulp
  • 软件测试面试大全(含答案+文档)
  • 论文解析:边缘计算网络中资源共享的分布式协议(2区)
  • 在Java中使用ModelMapper简化Shapefile属性转JavaBean实战
  • 【QT】QSS
  • 除了 Postman,还有什么好用的 API 调试工具吗
  • ARM驱动学习之PWM
  • Android 签名、空包签名 、jarsigner、apksigner
  • Github 2024-09-17 Python开源项目日报 Top10
  • 剖解杨辉三角
  • 重生归来之挖掘stm32底层知识(1)——寄存器
  • 华为OD机试 - 阿里巴巴找黄金宝箱(V) - 滑动窗口(Python/JS/C/C++ 2024 E卷 100分)
  • 小程序开关组件
  • ArrayList的扩容机制
  • Spring 源码解读:实现@Scope与自定义作用域
  • 前端开发第三节课
  • 解决使用阿里云DataV Geo在线地图路径访问403问题
  • 深入解析JSON:数据交换的通用语言
  • Spring Boot-国际化(I18N)问题
  • 嵌入式Linux笔试题目
  • 【JavaWeb】利用IDEA2024+tomcat10配置web6.0版本搭建JavaWeb开发项目
  • Encountered error while trying to install package.> lxml
  • es6中set和map的区别
  • C++速通LeetCode简单第17题-爬楼梯
  • PostgreSQL维护——解决索引膨胀和数据死行
  • 运维的基本概念:服务器和网络基础知识