【鸿蒙 HarmonyOS NEXT】尺寸设置:size/layoutWeight/constraintSize ...

打印 上一主题 下一主题

主题 541|帖子 541|积分 1623

一、配景

常见尺寸:width(宽度)、height(高度)、padding(内边距)、margin(外边距)
主要整理下size(设置高宽尺寸)、layoutWeight(对子组件进行重新结构)、constraintSize(设置约束尺寸,组件结构时,进行尺寸范围限定)
二、size:设置高宽尺寸

可以通过size来设置宽高尺寸,当然也可以直接给组件设置宽和高尺寸
  1. Row().size({ width: '100%', height: '100%' }).backgroundColor(Color.Yellow)
复制代码
三、layoutWeight:对子组件进行重新结构

   父容器尺寸确定时,设置了layoutWeight属性的子元素与兄弟元素占主轴尺寸按照权重进行分配,忽略元素本身尺寸设置,表示自适应占满剩余空间。
  默认值:0
  说明:
  仅在Row/Column/Flex结构中见效。
  可选值为大于等于0的数字,或者可以转换为数字的字符串。
  3.1、示例代码 

  1. @Entry
  2. @Component
  3. struct SizeExample {
  4.   build() {
  5.     Row() {
  6.       // 权重1,占主轴剩余空间1/3
  7.       Text('好物推荐')
  8.         .size({ width: '30%', height: 110 }).backgroundColor(0xFFEFD5).textAlign(TextAlign.Center)
  9.         .layoutWeight(1)
  10.       // 权重2,占主轴剩余空间2/3
  11.       Text('每周更新')
  12.         .size({ width: '30%', height: 110 }).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
  13.         .layoutWeight(2)
  14.       // 未设置layoutWeight属性,组件按照自身尺寸渲染
  15.       Text('清仓5折起')
  16.         .size({ width: '30%', height: 110 }).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)
  17.     }.size({ width: '90%', height: 140 }).backgroundColor(0xAFEEEE)
  18.   }
  19. }
复制代码
3.2、实现效果:


四、constraintSize:设置约束尺寸,组件结构时,进行尺寸范围限定

4.1、使用场景

在固定容器内包含文本和图标,图标跟在文本后面一行展示,其中文本的内容不是固定的,当文本内容少时文本和图标会在固定容器内,但当文本内容多时团领会挤出固定容器外。
必要实现的效果是:不管文本内容多少,文本和图标都能在容器内,不操出
4.1.1、场景一:当文本少时,文本和图标都在固定容器内


4.1.2、场景二:当文本多时,文本和图标会操出固定容器外


4.2、示例代码:

  1. @Entry
  2. @Component
  3. struct SizeExample {
  4.   build() {
  5.     Row() {
  6.       Text('jkdjksjdkshhhkdhjsdhkshdsjkdhjs')
  7.         .maxLines(1)
  8.         .textOverflow({ overflow: TextOverflow.Ellipsis })
  9.       Image($r('app.media.startIcon')).width(20).margin({ left: 10 })
  10.     }.backgroundColor(Color.Orange).width(150).margin(50).padding(10)
  11.   }
  12. }
复制代码
4.3、使用场景办理方法

不管文本内容多少,文本和图标都能在容器内;给Text添加constraintSize属性

   设置约束尺寸。constraintSize的优先级高于Width和Height。取值结果参考constraintSize取值对width/height影响。
  默认值:
  { minWidth: 0,maxWidth: Infinity,minHeight: 0,maxHeight: Infinity }
  单元:vp
   
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

商道如狼道

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表