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<string> | 否 | 设置断点位置的单调递增数组。<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.Start、ItemAlign.Center、ItemAlign.End、ItemAlign.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 251