1e41f4b71Sopenharmony_ci# GridRow
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci栅格布局可以为布局提供规律性的结构,解决多尺寸多设备的动态布局问题,保证不同设备上各个模块的布局一致性。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci栅格容器组件,仅可以和栅格子组件([GridCol](ts-container-gridcol.md))在栅格布局场景中使用。
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci>  **说明:**
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci## 子组件
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci可以包含GridCol子组件。
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## 接口
18e41f4b71Sopenharmony_ciGridRow(option?: GridRowOptions)
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci**参数:**
27e41f4b71Sopenharmony_ci| 参数名 |类型|必填|说明|
28e41f4b71Sopenharmony_ci|-----|-----|----|----|
29e41f4b71Sopenharmony_ci| option | [GridRowOptions](#gridrowoptions对象说明) | 否  | 栅格布局子组件参数。 |
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci## GridRowOptions对象说明
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci| 名称 |类型|必填|说明|
40e41f4b71Sopenharmony_ci|-----|-----|----|----|
41e41f4b71Sopenharmony_ci|columns| number \| [GridRowColumnOption](#gridrowcolumnoption) |  否  |设置布局列数。<br />默认值:12 |
42e41f4b71Sopenharmony_ci|gutter|[Length](ts-types.md#length) \| [GutterOption](#gutteroption)|   否  |栅格布局间距。<br />默认值:0 |
43e41f4b71Sopenharmony_ci|breakpoints|[BreakPoints](#breakpoints)|  否  |设置断点值的断点数列以及基于窗口或容器尺寸的相应参照。<br />默认值:<br />{<br />value: ["320vp", "600vp", "840vp"],<br />reference: BreakpointsReference.WindowSize<br />} |
44e41f4b71Sopenharmony_ci|direction|[GridRowDirection](#gridrowdirection枚举说明)|   否  |栅格布局排列方向。<br />默认值:GridRowDirection.Row |
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci## GutterOption
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci栅格布局间距类型,用于描述栅格子组件不同方向的间距。
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci| 名称   | 类型   | 必填   | 说明                                     |
57e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ---------------------------------------- |
58e41f4b71Sopenharmony_ci| x  | [Length](ts-types.md#length) \| [GridRowSizeOption](#gridrowsizeoption) | 否   | 栅格子组件水平方向间距。    |
59e41f4b71Sopenharmony_ci| y  | [Length](ts-types.md#length) \| [GridRowSizeOption](#gridrowsizeoption) | 否   | 栅格子组件竖直方向间距。    |
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci## GridRowColumnOption
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci栅格在不同宽度设备类型下,栅格列数。
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci| 名称   | 类型   | 必填   | 说明                                     |
72e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ---------------------------------------- |
73e41f4b71Sopenharmony_ci| xs  | number | 否    | 在栅格大小为xs的设备上,栅格容器组件的栅格列数。    |
74e41f4b71Sopenharmony_ci| sm  | number | 否    | 在栅格大小为sm的设备上,栅格容器组件的栅格列数。      |
75e41f4b71Sopenharmony_ci| md  | number | 否    | 在栅格大小为md的设备上,栅格容器组件的栅格列数。    |
76e41f4b71Sopenharmony_ci| lg  | number | 否    | 在栅格大小为lg的设备上,栅格容器组件的栅格列数。      |
77e41f4b71Sopenharmony_ci| xl  | number | 否    | 在栅格大小为xl的设备上,栅格容器组件的栅格列数。    |
78e41f4b71Sopenharmony_ci| xxl | number | 否    | 在栅格大小为xxl的设备上,栅格容器组件的栅格列数。    |
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci**说明:**
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci在GridRow栅格组件中,允许开发者使用breakpoints自定义修改[断点](../../../ui/arkts-layout-development-grid-layout.md#栅格系统断点)的取值范围,最多支持xs、sm、md、lg、xl、xxl六个断点,且名称不可修改。假设传入的数组是[n0, n1, n2, n3, n4],各个断点取值如下:  
83e41f4b71Sopenharmony_ci|断点|取值范围|
84e41f4b71Sopenharmony_ci|---|-----------|
85e41f4b71Sopenharmony_ci|xs |[0, n0)    |
86e41f4b71Sopenharmony_ci|sm |[n0, n1)   |
87e41f4b71Sopenharmony_ci|md |[n1, n2)   |
88e41f4b71Sopenharmony_ci|lg |[n2, n3)   |
89e41f4b71Sopenharmony_ci|xl |[n3, n4)   |
90e41f4b71Sopenharmony_ci|xxl|[n4, INF)  |
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci## GridRowSizeOption
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci栅格在不同宽度设备类型下,gutter的大小。
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci| 名称   | 类型   | 必填   | 说明                                     |
103e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ---------------------------------------- |
104e41f4b71Sopenharmony_ci| xs  | [Length](ts-types.md#length) | 否    | 在最小宽度类型设备上,栅格子组件的间距。    |
105e41f4b71Sopenharmony_ci| sm  | [Length](ts-types.md#length) | 否    | 在小宽度类型设备上,栅格子组件的间距。      |
106e41f4b71Sopenharmony_ci| md  | [Length](ts-types.md#length) | 否    | 在中等宽度类型设备上,栅格子组件的间距。    |
107e41f4b71Sopenharmony_ci| lg  | [Length](ts-types.md#length) | 否    | 在大宽度类型设备上,栅格子组件的间距。      |
108e41f4b71Sopenharmony_ci| xl  | [Length](ts-types.md#length) | 否    | 在特大宽度类型设备上,栅格子组件的间距。    |
109e41f4b71Sopenharmony_ci| xxl | [Length](ts-types.md#length) | 否    | 在超大宽度类型设备上,栅格子组件的间距。    |
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci## BreakPoints
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci设置栅格容器组件的断点。
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci| 名称   | 类型   | 必填   | 说明                                     |
122e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ---------------------------------------- |
123e41f4b71Sopenharmony_ci| value  | Array&lt;string&gt; | 否  | 设置断点位置的单调递增数组。<br>默认值:["320vp", "600vp", "840vp"]    |
124e41f4b71Sopenharmony_ci| reference  | [BreakpointsReference](#breakpointsreference枚举说明) | 否    | 断点切换参照物。<br>默认值:BreakpointsReference.WindowSize |
125e41f4b71Sopenharmony_ci```ts
126e41f4b71Sopenharmony_ci  // 启用xs、sm、md共3个断点
127e41f4b71Sopenharmony_ci  breakpoints: {value: ["100vp", "200vp"]}
128e41f4b71Sopenharmony_ci  // 启用xs、sm、md、lg共4个断点,断点范围值必须单调递增
129e41f4b71Sopenharmony_ci  breakpoints: {value: ["320vp", "600vp", "840vp"]}
130e41f4b71Sopenharmony_ci  // 启用xs、sm、md、lg、xl共5个断点,断点范围数量不可超过断点可取值数量-1
131e41f4b71Sopenharmony_ci  breakpoints: {value: ["320vp", "600vp", "840vp", "1080vp"]}
132e41f4b71Sopenharmony_ci```
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci## BreakpointsReference枚举说明
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci| 名称 | 说明 |
143e41f4b71Sopenharmony_ci| -------- | -------- |
144e41f4b71Sopenharmony_ci| WindowSize | 以窗口为参照。 |
145e41f4b71Sopenharmony_ci| ComponentSize | 以容器为参照。 |
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci## GridRowDirection枚举说明
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci| 名称 | 说明 |
156e41f4b71Sopenharmony_ci| -------- | -------- |
157e41f4b71Sopenharmony_ci| Row | 栅格元素按照行方向排列。 |
158e41f4b71Sopenharmony_ci| RowReverse | 栅格元素按照逆序行方向排列。 |
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_ci**说明:**
161e41f4b71Sopenharmony_ci* 栅格元素仅支持Row/RowReverse排列,不支持column/ColumnReverse方向排列。
162e41f4b71Sopenharmony_ci* 栅格子组件仅能通过span、offset计算子组件位置与大小。多个子组件span超过规定列数时自动换行。
163e41f4b71Sopenharmony_ci* 单个元素span大小超过最大列数时后台默认span为最大column数。
164e41f4b71Sopenharmony_ci* 新一行的Offset加上子组件的span超过总列数时,将下一个子组件在新的一行放置。
165e41f4b71Sopenharmony_ci* 例:Item1: GridCol({ span: 6}), Item2: GridCol({ span: 8, offset:11})  
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci|1      | 2     | 3     | 4     | 5     | 6     | 7     | 8     | 9     | 10    | 11    | 12    |
168e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ---- | -----|-----|---------|--------|------|------- |------- |------- |
169e41f4b71Sopenharmony_ci| $\circ$ | $\circ$ | $\circ$ | $\circ$ | $\circ$|$\circ$| - |  - |  - |  -  | -  | -  |
170e41f4b71Sopenharmony_ci| -     | -     | -     | -     | -     |       |       |       |       |       |   |   |
171e41f4b71Sopenharmony_ci| $\circ$ | $\circ$ | $\circ$ | $\circ$ | $\circ$|$\circ$|$\circ$|$\circ$|  |   |   |   |
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci## 属性
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci### alignItems<sup>10+</sup>
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_cialignItems(value: ItemAlign)
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci设置GridRow中的GridCol垂直主轴方向对齐方式。GridCol本身也可通过alignSelf([ItemAlign](ts-appendix-enums.md#itemalign))设置自身对齐方式。当上述两种对齐方式都设置时,以GridCol自身设置为准。
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci**卡片能力:** 从API version 10开始,该接口支持在ArkTS卡片中使用。
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci**参数:** 
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci| 参数名 | 类型                                        | 必填 | 说明                                                         |
192e41f4b71Sopenharmony_ci| ------ | ------------------------------------------- | ---- | ------------------------------------------------------------ |
193e41f4b71Sopenharmony_ci| value  | [ItemAlign](ts-appendix-enums.md#itemalign) | 是   | GridRow中的GridCol垂直主轴方向对齐方式。<br/>默认值:ItemAlign.Start<br/>**说明**:<br/>ItemAlign支持的枚举:ItemAlign.StartItemAlign.CenterItemAlign.EndItemAlign.Stretch。 |
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci## 事件
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_ci### onBreakpointChange
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_cionBreakpointChange(callback: (breakpoints: string) => void)
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_ci断点发生变化时触发回调。
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci**参数:**
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_ci| 参数名   | 类型   | 必填   | 说明   |
213e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ---------------------------------------- |
214e41f4b71Sopenharmony_ci|breakpoints| string |否|取值为`"xs"`、`"sm"`、`"md"`、`"lg"`、`"xl"`、`"xxl"`。|
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci## 示例
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci```ts
219e41f4b71Sopenharmony_ci// xxx.ets
220e41f4b71Sopenharmony_ci@Entry
221e41f4b71Sopenharmony_ci@Component
222e41f4b71Sopenharmony_cistruct GridRowExample {
223e41f4b71Sopenharmony_ci  @State bgColors: Color[] = [Color.Red, Color.Orange, Color.Yellow, Color.Green, Color.Pink, Color.Grey, Color.Blue, Color.Brown]
224e41f4b71Sopenharmony_ci  @State currentBp: string = 'unknown'
225e41f4b71Sopenharmony_ci
226e41f4b71Sopenharmony_ci  build() {
227e41f4b71Sopenharmony_ci    Column() {
228e41f4b71Sopenharmony_ci      GridRow({
229e41f4b71Sopenharmony_ci        columns: 5,
230e41f4b71Sopenharmony_ci        gutter: { x: 5, y: 10 },
231e41f4b71Sopenharmony_ci        breakpoints: { value: ["400vp", "600vp", "800vp"],
232e41f4b71Sopenharmony_ci          reference: BreakpointsReference.WindowSize },
233e41f4b71Sopenharmony_ci        direction: GridRowDirection.Row
234e41f4b71Sopenharmony_ci      }) {
235e41f4b71Sopenharmony_ci        ForEach(this.bgColors, (color: Color) => {
236e41f4b71Sopenharmony_ci          GridCol({ span: { xs: 1, sm: 2, md: 3, lg: 4 }, offset: 0, order: 0 }) {
237e41f4b71Sopenharmony_ci            Row().width("100%").height("20vp")
238e41f4b71Sopenharmony_ci          }.borderColor(color).borderWidth(2)
239e41f4b71Sopenharmony_ci        })
240e41f4b71Sopenharmony_ci      }.width("100%").height("100%")
241e41f4b71Sopenharmony_ci      .onBreakpointChange((breakpoint) => {
242e41f4b71Sopenharmony_ci        this.currentBp = breakpoint
243e41f4b71Sopenharmony_ci      })
244e41f4b71Sopenharmony_ci    }.width('80%').margin({ left: 10, top: 5, bottom: 5 }).height(200)
245e41f4b71Sopenharmony_ci    .border({ color: '#880606', width: 2 })
246e41f4b71Sopenharmony_ci  }
247e41f4b71Sopenharmony_ci}
248e41f4b71Sopenharmony_ci```
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci![figures/gridrow.png](figures/gridrow.png)
251