鸿蒙OH实战开发:ArkUI容器类组件-格栅布局容器(GridContainer)
(value?columns?sizeType?: SizeType;gutter?margin?value:设置布局的可选参数,columns:设置当前布局总列数,默认为auto。sizeType:设置选用设备宽度类型,SizeType参数说明如下:XS:最小宽度类型设备。SM:小宽度类型设备。MD:中等宽度类型设备。LG:大宽度类型设备。Auto(默认值):根据设备类型进行选择。gutter:
·
📚往期学习笔录📝:
📝 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
📝 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
📝 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
📝 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
📝 记录一场鸿蒙开发岗位面试经历~
📝 持续更新中……
ArkUI开发框架提供了纵向排布栅格布局容器 GridContainer ,它仅在栅格布局场景中使用。
GridContainer定义介绍
interface GridContainerInterface {
(value?: GridContainerOptions): GridContainerAttribute;
}
declare interface GridContainerOptions {
columns?: number | "auto";
sizeType?: SizeType;
gutter?: number | string;
margin?: number | string;
}
-
value:设置布局的可选参数,
GridContainerOptions说明如下:- columns:设置当前布局总列数,默认为
auto。 - sizeType:设置选用设备宽度类型,
SizeType参数说明如下:- XS:最小宽度类型设备。
- SM:小宽度类型设备。
- MD:中等宽度类型设备。
- LG:大宽度类型设备。
- Auto(默认值):根据设备类型进行选择。
- gutter:设置栅格布局列间距。
- margin:设置栅格布局两侧间距。
- columns:设置当前布局总列数,默认为
简单样例如下所示:
@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%')
}
}
更多推荐


所有评论(0)