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