前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >11. 快速上手!HarmonyOS4.0 Grid_GridItem容器组件详解

11. 快速上手!HarmonyOS4.0 Grid_GridItem容器组件详解

作者头像
全栈若城
发布2024-05-26 09:33:11
690
发布2024-05-26 09:33:11
举报
文章被收录于专栏:若城技术专栏若城技术专栏

本章内容概要

Grid组件说明

网格容器,由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。包含GridItem子组件。

GridItem 组件说明

网格容器中单项内容容器。

Grid属性讲解

columnsTemplate

设置当前网格布局列的数量,不设置时默认1列。 例如, ‘1fr 1fr 2fr’ 是将父组件分3列,将父组件允许的宽分为4等份,第一列占1份,第二列占1份,第三列占2份。 注意: 设置为’0fr’时,该列的列宽为0,不显示GridItem。设置为其他非法值时,GridItem显示为固定1列。

代码如下
代码语言:javascript
复制
/**
 * @Author: 若城
 * @Description:
 */
@Entry
@Component
struct Grid_GridItem_Note {
  private gridItemData:string[]=['1','2','3','4']
  build() {
      Column({space:5}) {
         Grid(){
              ForEach(this.gridItemData, (item)=>{
                GridItem(){
                  Text(item).fontSize(20).backgroundColor('#e5e5e5')
                    .width('100%').height(50)
                }
                .borderWidth({
                  left:0,
                  right:2,
                  bottom:0,
                  top:0
                })
               })
         }.columnsTemplate('1fr 2fr 3fr 4fr')
      }
      .width('100%')
    }

}
效果图
rowsTemplate

设置当前网格布局行的数量,不设置时默认1行。 例如,'1fr 1fr 2fr’是将父组件分三行,将父组件允许的高分为4等份,第一行占1份,第二行占一份,第三行占2份。 注意: 设置为’0fr’,则这一行的行宽为0,这一行GridItem不显示。设置为其他非法值,按固定1行处理。

代码如下
代码语言:javascript
复制
Grid(){
	ForEach(this.gridItemData, (item)=>{
		GridItem(){
			Text(item)
				.fontSize(20)
				.backgroundColor('#e4e4e4')
				.height('100%')
				.width(50)
		}.borderWidth({
		left:1,
		right:2,
		bottom:1,
		top:1
	})
					})
}.rowsTemplate('1fr 2fr 3fr 4fr')
效果图
columnsGap/ rowsGap

| rowsGap

columnsGap

三种布局模式

Grid组件根据rowsTemplate、columnsTemplate属性的设置情况,可分为以下三种布局模式:

  1. rowsTemplate、columnsTemplate同时设置:
    • Grid只展示固定行列数的元素,其余元素不展示,且Grid不可滚动。
    • 此模式下以下属性不生效:layoutDirection、maxCount、minCount、cellLength。
    • Grid的宽高没有设置时,默认适应父组件尺寸。
    • Gird网格列大小按照Gird自身内容区域大小减去所有行列Gap后按各个行列所占比重分配。
    • GridItem默认填满网格大小。
  2. rowsTemplate、columnsTemplate仅设置其中的一个:
    • 元素按照设置的方向进行排布,超出Grid显示区域后,Grid可通过滚动的方式展示。
    • 如果设置了columnsTemplate,Gird滚动方向为垂直方向,主轴方向为垂直方向,交叉轴方向为水平方向。
    • 如果设置了rowsTemplate,Gird滚动方向为水平方向,主轴方向为水平方向,交叉轴方向为垂直方向。
    • 此模式下以下属性不生效:layoutDirection、maxCount、minCount、cellLength。
    • 网格交叉轴方向尺寸根据Gird自身内容区域交叉轴尺寸减去交叉轴方向所有Gap后按所占比重分配。
    • 网格主轴方向尺寸取当前网格交叉轴方向所有GridItem高度最大值。
  3. rowsTemplate、columnsTemplate都不设置:
    • 元素在layoutDirection方向上排布,列数由Grid的宽度、首个元素的宽度、minCount、maxCount、columnsGap共同决定。
    • 行数由Grid高度、首个元素高度、cellLength、rowsGap共同决定。超出行列容纳范围的元素不显示,也不能通过滚动进行展示。
    • 此模式下仅生效以下属性:layoutDirection、maxCount、minCount、cellLength、editMode、columnsGap、rowsGap。
    • 当前layoutDirection设置为Row时,先从左到右排列,排满一行再排一下一列。剩余高度不足时不再布局,整体内容顶部居中。
    • 当前layoutDirection设置为Column时,先从上到下排列,排满一列再排一下一列,剩余宽度度不足时不再。整体内容顶部居中。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本章内容概要
  • Grid组件说明
  • GridItem 组件说明
  • Grid属性讲解
    • columnsTemplate
      • 代码如下
      • 效果图
    • rowsTemplate
      • 代码如下
      • 效果图
    • columnsGap/ rowsGap
    • 三种布局模式
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档