• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&nbsp;\|&nbsp;number | 否 | 纵向布局元素垂直方向间距。<br/>space为负数或者[justifyContent](ts-container-column.md#justifycontent8)设置为FlexAlign.SpaceBetweenFlexAlign.SpaceAroundFlexAlign.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.SpaceBetweenFlexAlign.SpaceAroundFlexAlign.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![column](figures/column.png)