• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 栅格设置
2
3<!--deprecated_code_no_check-->
4>  **说明:**
5>
6>  - 从API version 9开始,该模块不再维护,推荐使用新组件[GridCol](ts-container-gridcol.md)、[GridRow](ts-container-gridrow.md)替代。
7>
8>  - 栅格布局的列宽、列间距由距离最近的GridContainer父组件决定。使用栅格属性的组件树上至少需要有1个GridContainer容器组件。
9>
10>  - gridSpan、gridOffset属性调用时其父组件或祖先组件必须是GridContainer。
11
12## 属性
13
14| 名称        | 参数类型                                                     | 描述                                                         |
15| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
16| 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)。 |
17| 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)。  |
18| 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)。 |
19
20## 示例
21
22设置不同设备类型的宽度,以及单独设置组件的span和offset,在sm尺寸大小的设备上使用useSizeType中sm的数据实现一样的效果。
23
24<!--code_no_check-->
25
26```ts
27// xxx.ets
28@Entry
29@Component
30struct GridContainerExample1 {
31  build() {
32    Column() {
33      Text('useSizeType').fontSize(15).fontColor(0xCCCCCC).width('90%')
34      GridContainer() {
35        Row() {
36          Row() {
37            Text('Left').fontSize(25)
38          }
39          .useSizeType({
40            xs: { span: 1, offset: 0 }, sm: { span: 1, offset: 0 },
41            md: { span: 1, offset: 0 }, lg: { span: 2, offset: 0 }
42          })
43          .height("100%")
44          .backgroundColor(0x66bbb2cb)
45
46          Row() {
47            Text('Center').fontSize(25)
48          }
49          .useSizeType({
50            xs: { span: 1, offset: 0 }, sm: { span: 2, offset: 1 },
51            md: { span: 5, offset: 1 }, lg: { span: 7, offset: 2 }
52          })
53          .height("100%")
54          .backgroundColor(0x66b6c5d1)
55
56          Row() {
57            Text('Right').fontSize(25)
58          }
59          .useSizeType({
60            xs: { span: 1, offset: 0 }, sm: { span: 1, offset: 3 },
61            md: { span: 2, offset: 6 }, lg: { span: 3, offset: 9 }
62          })
63          .height("100%")
64          .backgroundColor(0x66bbb2cb)
65        }
66        .height(200)
67
68      }
69      .backgroundColor(0xf1f3f5)
70      .margin({ top: 10 })
71
72      // 单独设置组件的span和offset,在sm尺寸大小的设备上使用useSizeType中sm的数据实现一样的效果
73      Text('gridSpan,gridOffset').fontSize(15).fontColor(0xCCCCCC).width('90%')
74      GridContainer() {
75        Row() {
76          Row() {
77            Text('Left').fontSize(25)
78          }
79          .gridSpan(1)
80          .height("100%")
81          .backgroundColor(0x66bbb2cb)
82
83          Row() {
84            Text('Center').fontSize(25)
85          }
86          .gridSpan(2)
87          .gridOffset(1)
88          .height("100%")
89          .backgroundColor(0x66b6c5d1)
90
91          Row() {
92            Text('Right').fontSize(25)
93          }
94          .gridSpan(1)
95          .gridOffset(3)
96          .height("100%")
97          .backgroundColor(0x66bbb2cb)
98        }.height(200)
99      }
100    }
101  }
102}
103```
104
105**图1** 设备宽度为SM
106
107![zh-cn_image_0000001174582872](figures/zh-cn_image_0000001174582872.png)
108
109**图2** 设备宽度为MD
110
111![zh-cn_image_0000001219744207](figures/zh-cn_image_0000001219744207.png)
112
113**图3** 设备宽度为LG
114
115![zh-cn_image_0000001219982727](figures/zh-cn_image_0000001219982727.png)
116
117**图4** 单独设置gridSpan和gridOffset在特定屏幕大小下的效果与useSizeType效果一致
118
119![gridSpan](figures/gridSpan.png)