尺寸设置

2024-01-22 12:23 更新

用于设置组件的宽高、边距。

说明

从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

属性

名称

参数说明

描述

width

Length

设置组件自身的宽度,缺省时使用元素自身内容需要的宽度。若子组件的宽大于父组件的宽,则会画出父组件的范围。

单位:vp

从API version 9开始,该接口支持在ArkTS卡片中使用。

height

Length

设置组件自身的高度,缺省时使用元素自身内容需要的高度。若子组件的高大于父组件的高,则会画出父组件的范围。

单位:vp

从API version 9开始,该接口支持在ArkTS卡片中使用。

size

{

width?: Length,

height?: Length

}

设置高宽尺寸。

单位:vp

padding

Padding | Length

设置内边距属性。

参数为Length类型时,四个方向内边距同时生效。

默认值:0

单位:vp

padding设置百分比时,上下左右内边距均以父容器的width作为基础值。

从API version 9开始,该接口支持在ArkTS卡片中使用。

margin

Margin | Length

设置外边距属性。

参数为Length类型时,四个方向外边距同时生效。

默认值:0

单位:vp

margin设置百分比时,上下左右外边距均以父容器的width作为基础值。

从API version 9开始,该接口支持在ArkTS卡片中使用。

layoutWeight

number | string

父容器尺寸确定时,设置了layoutWeight属性的子元素与兄弟元素占主轴尺寸按照权重进行分配,忽略元素本身尺寸设置,表示自适应占满剩余空间。

默认值:0

从API version 9开始,该接口支持在ArkTS卡片中使用。

说明:

仅在Row/Column/Flex布局中生效。

可选值为大于等于0的数字,或者可以转换为数字的字符串。

constraintSize

{

minWidth?: Length,

maxWidth?: Length,

minHeight?: Length,

maxHeight?: Length

}

设置约束尺寸,组件布局时,进行尺寸范围限制。constraintSize的优先级高于Width和Height。若设置的minWidth大于maxWidth,则minWidth生效,minHeight与maxHeight同理。

默认值:

{

minWidth: 0,

maxWidth: Infinity,

minHeight: 0,

maxHeight: Infinity

}

示例

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct SizeExample {
  5. build() {
  6. Column({ space: 10 }) {
  7. Text('margin and padding:').fontSize(12).fontColor(0xCCCCCC).width('90%')
  8. Row() {
  9. // 宽度80 ,高度80 ,外边距20(蓝色区域),上下左右的内边距分别为5、15、10、20(白色区域)
  10. Row() {
  11. Row().size({ width: '100%', height: '100%' }).backgroundColor(Color.Yellow)
  12. }
  13. .width(80)
  14. .height(80)
  15. .padding({ top: 5, left: 10, bottom: 15, right: 20 })
  16. .margin(20)
  17. .backgroundColor(Color.White)
  18. }.backgroundColor(Color.Blue)
  19. Text('constraintSize').fontSize(12).fontColor(0xCCCCCC).width('90%')
  20. Text('this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text.this is a Text')
  21. .width('90%')
  22. .constraintSize({ maxWidth: 200 })
  23. Text('layoutWeight').fontSize(12).fontColor(0xCCCCCC).width('90%')
  24. // 父容器尺寸确定时,设置了layoutWeight的子元素在主轴布局尺寸按照权重进行分配,忽略本身尺寸设置。
  25. Row() {
  26. // 权重1,占主轴剩余空间1/3
  27. Text('layoutWeight(1)')
  28. .size({ width: '30%', height: 110 }).backgroundColor(0xFFEFD5).textAlign(TextAlign.Center)
  29. .layoutWeight(1)
  30. // 权重2,占主轴剩余空间2/3
  31. Text('layoutWeight(2)')
  32. .size({ width: '30%', height: 110 }).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
  33. .layoutWeight(2)
  34. // 未设置layoutWeight属性,组件按照自身尺寸渲染
  35. Text('no layoutWeight')
  36. .size({ width: '30%', height: 110 }).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)
  37. }.size({ width: '90%', height: 140 }).backgroundColor(0xAFEEEE)
  38. }.width('100%').margin({ top: 5 })
  39. }
  40. }

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号