# 5.4:格栅布局容器(GridContainer)
ArkUI开发框架提供了纵向排布栅格布局容器 GridContainer
,它仅在栅格布局场景中使用。
# 5.4.1:GridContainer定义介绍
interface GridContainerInterface {
(value?: GridContainerOptions): GridContainerAttribute;
}
declare interface GridContainerOptions {
columns?: number | "auto";
sizeType?: SizeType;
gutter?: number | string;
margin?: number | string;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
value:设置布局的可选参数,
GridContainerOptions
说明如下:- columns:设置当前布局总列数,默认为
auto
。 - sizeType:设置选用设备宽度类型,
SizeType
参数说明如下:- XS:最小宽度类型设备。
- SM:小宽度类型设备。
- MD:中等宽度类型设备。
- LG:大宽度类型设备。
- Auto(默认值):根据设备类型进行选择。
- gutter:设置栅格布局列间距。
- margin:设置栅格布局两侧间距。
简单样例如下所示:
@Entry @Component struct ComponentTest { @State sizeType: SizeType = SizeType.XS // 默认采用最小宽度设备类型 build() { Column() { GridContainer({ columns: 12, // 设置格栅布局为12列 sizeType: this.sizeType, // 设置格栅布局类型 gutter: 10, // 设置格栅布局列间距,该版本还有bug margin: 20 // 设计格栅布局两侧间距 }) { Row() { Text('1') .useSizeType({ xs: { span: 6, offset: 0 }, // Text1在xs设备上占用6列 sm: { span: 2, offset: 0 }, // Text1在sm设备上占用2列 md: { span: 2, offset: 0 }, // Text1在md设备上占用2列 lg: { span: 3, offset: 0 } // Text1在lg设备上占用3列 }) .fontSize(20) .height(50) .backgroundColor(0x4682B4) .textAlign(TextAlign.Center) Text('2') .useSizeType({ xs: { span: 2, offset: 0 }, // Text2在xs设备上占用2列 sm: { span: 6, offset: 0 }, // Text2在sm设备上占用6列 md: { span: 2, offset: 0 }, // Text2在md设备上占用2列 lg: { span: 3, offset: 0 } // Text2在lg设备上占用3列 }) .fontSize(20) .height(50) .backgroundColor(0x00BFFF) .textAlign(TextAlign.Center) Text('3') .useSizeType({ xs: { span: 2, offset: 0 }, // Text3在xs设备上占用2列 sm: { span: 2, offset: 0 }, // Text3在sm设备上占用2列 md: { span: 6, offset: 0 }, // Text3在md设备上占用6列 lg: { span: 3, offset: 0 } // Text3在lg设备上占用3列 }) .fontSize(20) .height(50) .backgroundColor(0x4682B4) .textAlign(TextAlign.Center) Text('4') .useSizeType({ xs: { span: 2, offset: 0 }, // Text4在xs设备上占用2列 sm: { span: 2, offset: 0 }, // Text4在sm设备上占用2列 md: { span: 2, offset: 0 }, // Text4在md设备上占用2列 lg: { span: 3, offset: 0 } // Text4在lg设备上占用3列 }) .fontSize(20) .height(50) .backgroundColor(0x00BFFF) .textAlign(TextAlign.Center) } } .backgroundColor(Color.Pink) .width('90%') .margin({top: 10}) Row({space: 10}) { Button('XS') .onClick(() => { this.sizeType = SizeType.XS }).backgroundColor(0x317aff) Button('SM') .onClick(() => { this.sizeType = SizeType.SM }).backgroundColor(0x317aff) Button('MD') .onClick(() => { this.sizeType = SizeType.MD }).backgroundColor(0x317aff) Button('LG') .onClick(() => { this.sizeType = SizeType.LG }).backgroundColor(0x317aff) } .margin({top: 10}) }.width('100%') } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85样例运行结果如下图所示:
- columns:设置当前布局总列数,默认为
请作者喝杯咖啡
©arkui.club版权所有,禁止私自转发、克隆网站。