1# 栅格设置 2 3> **说明:** 4> 5> - 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 6> 7> - 栅格布局的列宽、列间距由距离最近的GridContainer父组件决定。使用栅格属性的组件树上至少需要有1个GridContainer容器组件。 8 9 10## 属性 11 12 13| 名称 | 参数类型 | 描述 | 14| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | 15| useSizeType | {<br/>xs?: number \| { span: number, offset: number },<br/>sm?: number \| { span: number, offset: number },<br/>md?: number \| { span: number, offset: number },<br/>lg?: number \| { span: number, offset: number }<br/>} | 设置在特定设备宽度类型下的占用列数和偏移列数,span: 占用列数; offset: 偏移列数。<br/>当值为number类型时,仅设置列数, 当格式如{"span": 1, "offset": 0}时,指同时设置占用列数与偏移列数。<br/>- xs: 指设备宽度类型为SizeType.XS时的占用列数和偏移列数。<br/>- sm: 指设备宽度类型为SizeType.SM时的占用列数和偏移列数。<br/>- md: 指设备宽度类型为SizeType.MD时的占用列数和偏移列数。<br/>- lg: 指设备宽度类型为SizeType.LG时的占用列数和偏移列数。 | 16| gridSpan | number | 默认占用列数,指useSizeType属性没有设置对应尺寸的列数(span)时,占用的栅格列数。<br/>**说明:**<br/>设置了栅格span属性,组件的宽度由栅格布局决定。<br>默认值:1 | 17| gridOffset | number | 默认偏移列数,指useSizeType属性没有设置对应尺寸的偏移(offset)时, 当前组件沿着父组件Start方向,偏移的列数,也就是当前组件位于第n列。<br/>**说明:**<br/>- 配置该属性后,当前组件在父组件水平方向的布局不再跟随父组件原有的布局方式,而是沿着父组件的Start方向偏移一定位移。<br/>- 偏移位移 = (列宽 + 间距)\* 列数。<br/>- 设置了偏移(gridOffset)的组件之后的兄弟组件会根据该组件进行相对布局,类似相对布局。<br>默认值:0 | 18 19 20## 示例 21 22```ts 23// xxx.ets 24@Entry 25@Component 26struct GridContainerExample1 { 27 build() { 28 Column() { 29 Text('useSizeType').fontSize(15).fontColor(0xCCCCCC).width('90%') 30 GridContainer() { 31 Row({}) { 32 Row() { 33 Text('Left').fontSize(25) 34 } 35 .useSizeType({ 36 xs: { span: 1, offset: 0 }, sm: { span: 1, offset: 0 }, 37 md: { span: 1, offset: 0 }, lg: { span: 2, offset: 0 } 38 }) 39 .height("100%") 40 .backgroundColor(0x66bbb2cb) 41 42 Row() { 43 Text('Center').fontSize(25) 44 } 45 .useSizeType({ 46 xs: { span: 1, offset: 0 }, sm: { span: 2, offset: 1 }, 47 md: { span: 5, offset: 1 }, lg: { span: 7, offset: 2 } 48 }) 49 .height("100%") 50 .backgroundColor(0x66b6c5d1) 51 52 Row() { 53 Text('Right').fontSize(25) 54 } 55 .useSizeType({ 56 xs: { span: 1, offset: 0 }, sm: { span: 1, offset: 3 }, 57 md: { span: 2, offset: 6 }, lg: { span: 3, offset: 9 } 58 }) 59 .height("100%") 60 .backgroundColor(0x66bbb2cb) 61 } 62 .height(200) 63 64 } 65 .backgroundColor(0xf1f3f5) 66 .margin({ top: 10 }) 67 68 // 单独设置组件的span和offset,在sm尺寸大小的设备上使用useSizeType中sm的数据实现一样的效果 69 Text('gridSpan,gridOffset').fontSize(15).fontColor(0xCCCCCC).width('90%') 70 GridContainer() { 71 Row() { 72 Row() { 73 Text('Left').fontSize(25) 74 } 75 .gridSpan(1) 76 .height("100%") 77 .backgroundColor(0x66bbb2cb) 78 79 Row() { 80 Text('Center').fontSize(25) 81 } 82 .gridSpan(2) 83 .gridOffset(1) 84 .height("100%") 85 .backgroundColor(0x66b6c5d1) 86 87 Row() { 88 Text('Right').fontSize(25) 89 } 90 .gridSpan(1) 91 .gridOffset(3) 92 .height("100%") 93 .backgroundColor(0x66bbb2cb) 94 }.height(200) 95 } 96 } 97 } 98} 99``` 100 101**图1** 设备宽度为SM 102 103![zh-cn_image_0000001174582872](figures/zh-cn_image_0000001174582872.png) 104 105**图2** 设备宽度为MD 106 107![zh-cn_image_0000001219744207](figures/zh-cn_image_0000001219744207.png) 108 109**图3** 设备宽度为LG 110 111![zh-cn_image_0000001219982727](figures/zh-cn_image_0000001219982727.png) 112 113**图4** 单独设置gridSpan和gridOffset在特定屏幕大小下的效果与useSizeType效果一致 114 115![gridSpan](figures/gridSpan.png)