鸿蒙~ArkUI 基础 Grid网格布局
作者:访客发布时间:2023-12-28分类:程序开发学习浏览:128
导读:一、设置排列方式设置行列数量与占比通过设置行列数量与尺寸占比可以确定网格布局的整体排列方式。Grid组件提供了rowsTemplate和columnsTemplate属性用于设...
一、设置排列方式
- 设置行列数量与占比
通过设置行列数量与尺寸占比可以确定网格布局的整体排列方式。Grid组件提供了rowsTemplate和columnsTemplate属性用于设置网格布局行列数量与尺寸占比。
rowsTemplate和columnsTemplate属性值是一个由多个空格和'数字+fr'间隔拼接的字符串,fr的个数即网格布局的行或列数,fr前面的数值大小,用于计算该行或列在网格布局宽度上的占比,最终决定该行或列的宽度
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
build() {
Grid() {
GridItem() {
Text("1")
}.backgroundColor(Color.Black)
GridItem() {
Text("2")
}.backgroundColor(Color.Blue)
GridItem() {
Text("3")
}.backgroundColor(Color.Brown)
GridItem() {
Text("4")
}.backgroundColor(Color.Green)
GridItem() {
Text("5")
}.backgroundColor(Color.Grey)
GridItem() {
Text("6")
}.backgroundColor(Color.Orange)
GridItem() {
Text("7")
}.backgroundColor(Color.Pink)
GridItem() {
Text("8")
}.backgroundColor(Color.Red)
GridItem() {
Text("9")
}.backgroundColor(Color.Yellow)
}
.rowsTemplate('1fr 2fr 2fr')
.columnsTemplate('1fr 2fr 1fr')
}
}
- 设置子组件所占行列数
除了大小相同的等比例网格布局,由不同大小的网格组成不均匀分布的网格布局场景在实际应用中十分常见,如下图所示。在Grid组件中,通过设置GridItem的rowStart、rowEnd、columnStart和columnEnd可以实现如图所示的单个网格横跨多行或多列的场景。
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
build() {
Grid() {
GridItem() {
Text("1")
}
.backgroundColor(Color.Black)
.columnStart(1)
.columnEnd(3)
GridItem() {
Text("2")
}.backgroundColor(Color.Blue)
GridItem() {
Text("3")
}.backgroundColor(Color.Brown)
GridItem() {
Text("4")
}.backgroundColor(Color.Green)
GridItem() {
Text("5")
}.backgroundColor(Color.Grey)
GridItem() {
Text("6")
}.backgroundColor(Color.Orange)
GridItem() {
Text("7")
}.backgroundColor(Color.Pink)
GridItem() {
Text("8")
}.backgroundColor(Color.Red)
GridItem() {
Text("9")
}.backgroundColor(Color.Yellow)
}
.rowsTemplate('1fr 2fr 2fr')
.columnsTemplate('1fr 2fr 1fr')
}
}
- 设置主轴方向
使用Grid构建网格布局时,若没有设置行列数量与占比,可以通过layoutDirection可以设置网格布局的主轴方向,决定子组件的排列方式。此时可以结合minCount和maxCount属性来约束主轴方向上的网格数量
-
layoutDirection属性仅在不设置rowsTemplate和columnsTemplate时生效,此时元素在layoutDirection方向上排列。
-
仅设置rowsTemplate时,Grid主轴为水平方向,交叉轴为垂直方向。
-
仅设置columnsTemplate时,Grid主轴为垂直方向,交叉轴为水平方向。
- 设置行列间距
通过Grid的rowsGap和columnsGap可以设置网格布局的行列间距。在图5所示的计算器中,行间距为15vp,列间距为10vp。
👀关注公众号:Android老皮!!!欢迎大家来找我探讨交流👀
相关推荐
- ZML-Frame 最好的WordPress通用插件下载 博客插件模块
- Squad Post Grid Module for Divi Theme,Extra Theme and Divi Builder最好的WordPress常用插件下载博客插件模块
- 检查元素的基础:为DIY用户定制WordPress
- 鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 鸿蒙HarmonyOS实战-ArkUI组件(Flex)
- 鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 鸿蒙HarmonyOS实战-ArkTS语言(基本语法)
- 鸿蒙HarmonyOS实战-ArkTS语言(状态管理)
- 程序开发学习排行
- 最近发表
-
- Wii官方美版游戏Redump全集!游戏下载索引
- 视觉链接预览最好的WordPress常用插件下载博客插件模块
- 预约日历最好的wordpress常用插件下载博客插件模块
- 测验制作人最好的WordPress常用插件下载博客插件模块
- PubNews Plus|WordPress主题博客主题下载
- 护肤品|wordpress主题博客主题下载
- 肯塔·西拉|wordpress主题博客主题下载
- 酷时间轴(水平和垂直时间轴)最好的wordpress常用插件下载博客插件模块
- 作者头像列表/阻止最好的wordPress常用插件下载博客插件模块
- Elementor Pro Forms最好的WordPress常用插件下载博客插件模块的自动完成字段