• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 栅格设置
2
3>  **说明:**
4>
5>  - 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
6>
7>  - 栅格布局的列宽、列间距由距离最近的GridContainer父组件决定。使用栅格属性的组件树上至少需要有1个GridContainer容器组件。
8
9
10## 属性
11
12
13| 名称        | 参数类型                                                     | 描述                                                         |
14| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
15| useSizeType | {<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时的占用列数和偏移列数。 |
16| gridSpan    | number                                                       | 默认占用列数,指useSizeType属性没有设置对应尺寸的列数(span)时,占用的栅格列数。<br/>**说明:**<br/>设置了栅格span属性,组件的宽度由栅格布局决定。<br>默认值:1 |
17| gridOffset  | number                                                       | 默认偏移列数,指useSizeType属性没有设置对应尺寸的偏移(offset)时,&nbsp;当前组件沿着父组件Start方向,偏移的列数,也就是当前组件位于第n列。<br/>**说明:**<br/>- 配置该属性后,当前组件在父组件水平方向的布局不再跟随父组件原有的布局方式,而是沿着父组件的Start方向偏移一定位移。<br/>- 偏移位移&nbsp;=&nbsp;(列宽&nbsp;+&nbsp;间距)\*&nbsp;列数。<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)