1# Column 2 3沿垂直方向布局的容器。 4 5> **说明:** 6> 7> 该组件从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 8 9 10## 子组件 11 12可以包含子组件。 13 14 15## 接口 16 17### Column 18Column(options?: ColumnOptions) 19 20创建垂直方向线性布局容器,可以设置子组件的间距,间距类型为number或string类型。 21 22**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。 23 24**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 25 26**系统能力:** SystemCapability.ArkUI.ArkUI.Full 27 28**参数:** 29 30| 参数名 | 类型 | 必填 | 说明 | 31| -------- | -------- | -------- | -------- | 32| options | [ColumnOptions<sup>14+</sup>](#columnoptions14对象说明) | 否 | 纵向布局元素垂直方向间距。 | 33 34### Column<sup>18+</sup> 35Column(options?: ColumnOptions | ColumnOptionsV2) 36 37创建垂直方向线性布局容器,可以设置子组件的间距,间距类型为number、string或Resource类型。 38 39**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 40 41**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 42 43**系统能力:** SystemCapability.ArkUI.ArkUI.Full 44 45**参数:** 46 47| 参数名 | 类型 | 必填 | 说明 | 48| -------- | -------- | -------- | -------- | 49| options | [ColumnOptions](#columnoptions14对象说明) \| [ColumnOptionsV2](#columnoptionsv218对象说明) | 否 | 纵向布局元素垂直方向间距。 | 50 51## ColumnOptions<sup>14+</sup>对象说明 52 53用于构造Column组件时设置子组件间距属性。 54 55**卡片能力:** 从API version 14开始,该接口支持在ArkTS卡片中使用。 56 57**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 58 59**系统能力:** SystemCapability.ArkUI.ArkUI.Full 60 61| 名称 | 类型 | 必填 | 说明 | 62| -------- | -------- | -------- | -------- | 63| space<sup>7+</sup> | string \| number | 否 | 纵向布局元素垂直方向间距。<br/>space为负数或者[justifyContent](ts-container-column.md#justifycontent8)设置为FlexAlign.SpaceBetween、FlexAlign.SpaceAround、FlexAlign.SpaceEvenly时不生效。<br/>默认值:0<br/>单位:vp<br/>**说明:**<br/>space取值是大于等于0的数字,或者可以转换为数字的字符串。<br/>**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 64 65## ColumnOptionsV2<sup>18+</sup>对象说明 66 67用于构造Column组件时设置子组件间距属性。间距类型SpaceType支持number、string或Resource类型。 68 69**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 70 71**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 72 73**系统能力:** SystemCapability.ArkUI.ArkUI.Full 74 75| 名称 | 类型 | 必填 | 说明 | 76| -------- | -------- | -------- | -------- | 77| space | [SpaceType](#spacetype18) | 否 | 纵向布局元素垂直方向间距。<br/>space为负数或者justifyContent设置为FlexAlign.SpaceBetween、FlexAlign.SpaceAround、FlexAlign.SpaceEvenly时不生效。<br/>默认值:0,单位vp<br/>**说明:** <br/>space取值是大于等于0的数字,或者可以转换为数字的字符串,或者可以转换为数字的Resource类型数据。 | 78 79## SpaceType<sup>18+</sup> 80 81type SpaceType = string | number | Resource 82 83描述Row、Column组件构造函数中space支持的数据类型,取值类型为下表类型中的并集。 84 85**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 86 87**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 88 89**系统能力:** SystemCapability.ArkUI.ArkUI.Full 90 91|类型 |说明| 92|---|---| 93|number|表示类型为数字,可取任意值。| 94|string|表示值类型为字符串,可取任意值。| 95|[Resource](ts-types.md#resource)|表示值为资源引用类型,取值为从系统资源或者应用资源中引入的数据值。| 96 97 98## 属性 99 100除支持[通用属性](ts-component-general-attributes.md)外,还支持以下属性: 101 102### alignItems 103 104alignItems(value: HorizontalAlign) 105 106设置子组件在水平方向上的对齐格式。 107 108**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。 109 110**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 111 112**系统能力:** SystemCapability.ArkUI.ArkUI.Full 113 114**参数:** 115 116| 参数名 | 类型 | 必填 | 说明 | 117| ------ | ------------------------------------------------------- | ---- | ------------------------------------------------------------ | 118| value | [HorizontalAlign](ts-appendix-enums.md#horizontalalign) | 是 | 子组件在水平方向上的对齐格式。<br/>默认值:HorizontalAlign.Center | 119 120### justifyContent<sup>8+</sup> 121 122justifyContent(value: FlexAlign) 123 124设置子组件在垂直方向上的对齐格式。 125 126**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。 127 128**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 129 130**系统能力:** SystemCapability.ArkUI.ArkUI.Full 131 132**参数:** 133 134| 参数名 | 类型 | 必填 | 说明 | 135| ------ | ------------------------------------------- | ---- | ---------------------------------------------------------- | 136| value | [FlexAlign](ts-appendix-enums.md#flexalign) | 是 | 子组件在垂直方向上的对齐格式。<br/>默认值:FlexAlign.Start | 137 138> **说明:** 139> 140> Column布局时若子组件不设置[flexShrink](ts-universal-attributes-flex-layout.md#flexshrink)则默认不会压缩子组件,即所有子组件主轴大小累加可超过容器主轴。 141 142### reverse<sup>12+</sup> 143 144reverse(isReversed: Optional\<boolean\>) 145 146设置子组件在主轴(即竖直方向)上的排列是否反转。 147 148**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 149 150**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 151 152**系统能力:** SystemCapability.ArkUI.ArkUI.Full 153 154**参数:** 155 156| 参数名 | 类型 | 必填 | 说明 | 157| ------ | ------------------------------------------- | ---- | ---------------------------------------------------------- | 158| isReversed | Optional\<boolean\> | 是 | 子组件在主轴(即竖直方向)上的排列是否反转。<br/>默认值:true | 159 160> **说明:** 161> 162> 若未设置reverse属性,主轴方向不反转;若设置了reverse属性,且参数值为undefined,则视为默认值true,主轴方向反转。<br/>通用属性direction只能改变Column交叉轴方向,不改变Column主轴方向,因此与reverse属性互不影响。 163 164## 事件 165 166支持[通用事件](ts-component-general-events.md)。 167 168## 示例 169 170设置垂直方向的布局属性,如间距、对齐方式等。 171 172```json 173// resources/base/element/string.json 174{ 175 "string": [ 176 { 177 "name": "stringSpace", 178 "value": "5" 179 } 180 ] 181} 182``` 183 184```ts 185// xxx.ets 186@Entry 187@Component 188struct ColumnExample { 189 build() { 190 Column({ space: 5 }) { 191 // 设置子元素垂直方向间距为5 192 Text('space').width('90%') 193 Column({ space: 5 }) { 194 Column().width('100%').height(30).backgroundColor(0xAFEEEE) 195 Column().width('100%').height(30).backgroundColor(0x00FFFF) 196 }.width('90%').height(100).border({ width: 1 }) 197 198 // 通过资源引用方式设置子元素垂直方向间距 199 Text('Resource space').width('90%') 200 Column({ space: $r("app.string.stringSpace") }) { 201 Column().width('100%').height(30).backgroundColor(0xAFEEEE) 202 Column().width('100%').height(30).backgroundColor(0x00FFFF) 203 }.width('90%').height(100).border({ width: 1 }) 204 205 // 设置子元素水平方向对齐方式 206 Text('alignItems(Start)').width('90%') 207 Column() { 208 Column().width('50%').height(30).backgroundColor(0xAFEEEE) 209 Column().width('50%').height(30).backgroundColor(0x00FFFF) 210 }.alignItems(HorizontalAlign.Start).width('90%').border({ width: 1 }) 211 212 Text('alignItems(End)').width('90%') 213 Column() { 214 Column().width('50%').height(30).backgroundColor(0xAFEEEE) 215 Column().width('50%').height(30).backgroundColor(0x00FFFF) 216 }.alignItems(HorizontalAlign.End).width('90%').border({ width: 1 }) 217 218 Text('alignItems(Center)').width('90%') 219 Column() { 220 Column().width('50%').height(30).backgroundColor(0xAFEEEE) 221 Column().width('50%').height(30).backgroundColor(0x00FFFF) 222 }.alignItems(HorizontalAlign.Center).width('90%').border({ width: 1 }) 223 224 // 设置子元素垂直方向的对齐方式 225 Text('justifyContent(Center)').width('90%') 226 Column() { 227 Column().width('90%').height(30).backgroundColor(0xAFEEEE) 228 Column().width('90%').height(30).backgroundColor(0x00FFFF) 229 }.height(100).border({ width: 1 }).justifyContent(FlexAlign.Center) 230 231 Text('justifyContent(End)').width('90%') 232 Column() { 233 Column().width('90%').height(30).backgroundColor(0xAFEEEE) 234 Column().width('90%').height(30).backgroundColor(0x00FFFF) 235 }.height(100).border({ width: 1 }).justifyContent(FlexAlign.End) 236 }.width('100%').padding({ top: 5 }) 237 } 238} 239``` 240 241