首页 > 其他分享 >【鸿蒙应用】Grid和GridItem组件

【鸿蒙应用】Grid和GridItem组件

时间:2024-09-14 15:55:30浏览次数:3  
标签:鸿蒙 栅格 Color 100% 布局 GridItem 1fr width Grid


Grid是网格容器,有行和列组成,通过GridItem组件所在的单元格做出各种各样的布局。比如:

@Entry
@Preview
@Component
struct Index {
  private arr: string[] = ["1", "2", "31", "14", "51", "61", "71", "18"];

  build() {
    Column() {
      Grid() {
        ForEach(this.arr, (day: string) => {
          GridItem() {
            Text(day)
              .fontSize(16)
              .backgroundColor(0xF9CF93)
              .width("100%")
              .height("100%")
              .textAlign(TextAlign.Center)
          }
        }, (day: string) => day)
      }
      .columnsTemplate("1fr 1fr 1fr 1fr 1fr")
      .rowsTemplate("1fr 1fr 1fr 1fr 1fr")
      .columnsGap(10)
      .rowsGap(10)
      .width("90%")
      .backgroundColor(0xFAEEE0)
    }
    .height('100%')
    .width('100%')
  }
}

通过columnsTemplate来设置当前网格布局列的数量,默认是 1 列。上面的代码效果如下图所示:

【鸿蒙应用】Grid和GridItem组件_鸿蒙应用

rowsTemplate属性,则是用来设置当前网格布局行的数量。

GridRow和GridCol

GridRow和GridCol只能在栅格布局场景中使用,GridRow常用的几个属性:

  • gutter:栅格布局的间距,x:表示水平方向
  • columns:设置布局列数
  • breakpoints:设置断点值的断点数列以及基于窗口或者容器尺寸的相应参照
  • direction:栅格布局的方向

实例代码:

@Entry
@Preview
@Component
struct Index {
  private bgColors: Color[] =
    [Color.Red, Color.Orange, Color.Black, Color.Yellow, Color.Green, Color.Pink, Color.Gray, Color.Blue, Color.Brown];

  build() {
    Column() {
      GridRow({
        columns: 5, // 设置布局列数
        gutter: { x: 5, y: 20 }, // 栅格布局的间距
        breakpoints: {
          value: ["400vp", "600vp", "800vp"],
          reference: BreakpointsReference.WindowSize
        },
      }) {
        ForEach(this.bgColors, (color:string) => {
          GridCol({ span: { xs: 1,sm:2,md:3,lg:4 } }){
            Row().width("100%").height("80vp")
          }.backgroundColor(color).borderWidth(2)
        })
      }
    }
    .height('100%')
    .width('100%')
  }
}

【鸿蒙应用】Grid和GridItem组件_网格布局_02

这就是网格布局的相关组件


标签:鸿蒙,栅格,Color,100%,布局,GridItem,1fr,width,Grid
From: https://blog.51cto.com/u_12344418/12017509

相关文章

  • 【鸿蒙应用】List、ListItem和ListItemGroup组件
    List组件是一个列表组件,包含一系列相同宽度的列表,适合连续、多行呈现同类数据的,比如图片。ListItem组件是用来展示列表具体项的item;ListItemGroup组件是用来展示列表item分组的,这两个组件必须是配合List组件来使用。比如:interfaceItemType{title:string;projects:s......
  • 【鸿蒙应用开发】常见的容器组件:ColumnSplit、RowSplit和Flex
    上一章已经了解了Column和Row的一些属性,以下是几个案例:设置子组件水平方向的间距为:5@Entry@Preview@ComponentstructIndex{@Statemessage:string='Hello鸿蒙';controller:webview.WebviewController=newwebview.WebviewController();build(){Column(......
  • 鸿蒙应用开发的容器组件——Column和Row
    在鸿蒙(HarmonyOS)开发中,Column和Row是两种非常基础的布局组件,它们分别用于在垂直方向和水平方向上排列子组件。这些组件使得开发者能够轻松地构建出结构清晰、布局合理的用户界面。下面将详细介绍这两个组件的属性以及如何使用它们。Column和Row是常用的容器组件之一。Column是......
  • 《鸿蒙/Harmony | 开发日志》请求用户权限 & 打开应用设置界面
    鸿蒙的请求用户权限相对比较好用,下面的代码,基本是来源华为官方的文档,只需要封装一下,挺好用。鸿蒙的权限分类鸿蒙的权限分为两种系统权限(直接配置文件配置申请,不需要询问用户)需要用户手动确认的权限(必须提示用户主动授权)参考:《应用权限管控概述》在配置文件中设置需要申......
  • 《鸿蒙/Harmony | 开发日志》DevEco Studio 使用NewUI
    DevEco也是基于Jetbrain的IntelliJIDEA社区版开发。用习惯了Idea和AndroidStudio的新UI界面。看着旧版的界面风格太难了。官方没有提供改NewUI的方式,不过还是有其它的方法可以开启。只是有些功能可能没有那么好用,需要注意一下。不过在我用下来,目前的问题都能解决。开启N......
  • WPF datagrid contextmenu menuitem commandparameter CommandParameter="{Binding R
    Install-packagenewtonsoft.json  <DataGrid.ContextMenu><ContextMenu><MenuItemHeader="ExportSelected"Command="{BindingExportSelectedCmd}"CommandParameter="{BindingRelativeSource={Relat......
  • 【CSS in Depth 2 精译_030】5.2 Grid 网格布局中的网格结构剖析(下)
    当前内容所在位置(可进入专栏查看其他译好的章节内容)第一章层叠、优先级与继承(已完结)1.1层叠1.2继承1.3特殊值1.4简写属性1.5CSS渐进式增强技术1.6本章小结第二章相对单位(已完结)2.1相对单位的威力2.2em与rem2.3告别像素思维2.4视口的相对单位2.5......
  • WPF Datagrid DataGridTemplateColumn.CellTemplate local:ImageTextblock ImgUrl="{
    DataGridTemplate.CellTemplatecontainsonedatatemplaewilldisplaythecustomoizedcontrol,thekeylocatedatthecustomcontrol'sdependencypropertybindingandrelativesourceofx:typedatagridrow<local:ImageTextblockImgUrl="{Binding......
  • grid布局
    grid是一个css所有的网格容器的简写属性,可以设置以下属性:显式网格属性:grid-template-rows、grid-template-columns和grid-template-areas隐式网格属性:grid-auto-rows、grid-auto-columns和grid-auto-flow间距属性:grid-column-gap和grid-row-gap网格容器要使HTML......
  • 鸿蒙开发中获取定位信息
    使用LocationButton位置控件,首次点击应用中的位置控件,系统将弹窗请求用户授权,如果用户点取消,弹窗消失,应用无授权,用户再次点击位置控件时将会重新弹窗;用户点击允许,弹窗消失,应用将被授予临时位置权限,此后点击该应用的位置控件将不会弹窗。精准定位的临时授权会持续到灭屏、应用切......