第十三讲_ArkUI栅格布局(GridRow/GrowCol)

ArkUI栅格布局(GridRow/GrowCol)

  • 1. 栅格布局概述
  • 2. GridRow的使用
    • 2.1 设置栅格布局的总列数
    • 2.2 设置栅格布局的排列方向
    • 2.3 设置栅格布局中子组件间距
  • 3. GridCol的使用
    • 3.1 设置一个GridCol占栅格布局的列数
    • 3.2 设置GridCol在栅格布局中偏移列数
    • 3.3 设置GridCol在栅格布局中顺序
  • 4. 栅格系统断点
    • 4.1 GridRow 自定义断点
    • 4.2 应用断点适配不同宽度设备

1. 栅格布局概述

GridRow 为栅格容器组件,需与栅格子组件 GridCol 联合使用。

  • 栅格布局中将页面划分为等宽的列数和行数
  • 栅格布局中可以调整列与列之间和行与行之间的间距
  • 栅格布局中当页面元素的数量超出了一行或一列的容量时,自动换到下一行或下一列

2. GridRow的使用

2.1 设置栅格布局的总列数

GridRow 中通过 columns 参数设置栅格布局的总列数,columns 等于 12(默认值)。

@Entry
@Component
struct GridRowLayout {build() {GridRow({columns: 4}) {GridCol() {Text("第一个GridCol")}.backgroundColor(Color.Red)GridCol() {Text("第二个GridCol")}.backgroundColor(Color.Green)GridCol() {Text("第三个GridCol")}.backgroundColor(Color.Blue)GridCol() {Text("第四个GridCol")}.backgroundColor(Color.Pink)}}
}

在这里插入图片描述
示例代码中,设置栅格布局的Columns=4,表示4个GridCol子组件会占用一行。

2.2 设置栅格布局的排列方向

GridRowdirection 参数来指定 GridCol 在栅格容器中的排列方向。

  • GridRowDirection.Row:从左往右排列(默认值)
  • GridRowDirection.RowReverse:从右往左排列
@Entry
@Component
struct GridRowLayout {build() {GridRow({columns: 4, direction: GridRowDirection.RowReverse}) {GridCol() {Text("第一个GridCol")}.backgroundColor(Color.Red)GridCol() {Text("第二个GridCol")}.backgroundColor(Color.Green)GridCol() {Text("第三个GridCol")}.backgroundColor(Color.Blue)GridCol() {Text("第四个GridCol")}.backgroundColor(Color.Pink)}}
}

在这里插入图片描述

2.3 设置栅格布局中子组件间距

GridRow 中通过 gutter 参数设置子元素在水平(x轴)和垂直(y轴)方向的间距。

@Entry
@Component
struct GridRowLayout {build() {GridRow({columns: 4, direction: GridRowDirection.RowReverse, gutter: {x: 10, y: 10}}) {GridCol() {Text("第一个GridCol")}.backgroundColor(Color.Red)GridCol() {Text("第二个GridCol")}.backgroundColor(Color.Green)GridCol() {Text("第三个GridCol")}.backgroundColor(Color.Blue)GridCol() {Text("第四个GridCol")}.backgroundColor(Color.Pink)GridCol() {Text("第五个GridCol")}.backgroundColor(Color.Orange)}}
}

在这里插入图片描述

3. GridCol的使用

3.1 设置一个GridCol占栅格布局的列数

GridCol 中通过 span 参数设置在栅格布局中占的列数,span 等于 1(默认值)。

@Entry
@Component
struct GridRowLayout {build() {GridRow({columns: 4, direction: GridRowDirection.RowReverse, gutter: {x: 10, y: 10}}) {GridCol() {Text("第一个GridCol")}.backgroundColor(Color.Red)GridCol() {Text("第二个GridCol")}.backgroundColor(Color.Green)GridCol() {Text("第三个GridCol")}.backgroundColor(Color.Blue)GridCol() {Text("第四个GridCol")}.backgroundColor(Color.Pink)// 设置一个GridCol占栅格布局的4列GridCol({span: 4}) {Text("第五个GridCol")}.backgroundColor(Color.Orange)}}
}

在这里插入图片描述

3.2 设置GridCol在栅格布局中偏移列数

GridCol 中通过 offset 参数设置在栅格布局中偏移的列数,offset 等于 0(默认值)。

@Entry
@Component
struct GridRowLayout {build() {GridRow({columns: 4, direction: GridRowDirection.RowReverse, gutter: {x: 10, y: 10}}) {GridCol() {Text("第一个GridCol")}.backgroundColor(Color.Red)GridCol() {Text("第二个GridCol")}.backgroundColor(Color.Green)GridCol() {Text("第三个GridCol")}.backgroundColor(Color.Blue)GridCol() {Text("第四个GridCol")}.backgroundColor(Color.Pink)// 设置一个GridCol占栅格布局的2列// 设置GridCol偏移1列GridCol({span: 2, offset: 1}) {Text("第五个GridCol")}.backgroundColor(Color.Orange)}}
}

在这里插入图片描述

3.3 设置GridCol在栅格布局中顺序

GridCol 中通过 order 参数设置在栅格布局中排列顺序,order 等于0(默认)。order 较小的组件在前,较大的在后。没有设置order参数的,按照代码的先后顺序排列。

@Entry
@Component
struct GridRowLayout {build() {GridRow({columns: 4, gutter: {x: 10, y: 10}}) {GridCol() {Text("第一个GridCol")}.backgroundColor(Color.Red)// 设置GridCol的order为0GridCol({order: 0}) {Text("第二个GridCol")}.backgroundColor(Color.Green)// 设置GridCol的order为1GridCol({order: 1}) {Text("第三个GridCol")}.backgroundColor(Color.Blue)GridCol() {Text("第四个GridCol")}.backgroundColor(Color.Pink)// 设置一个GridCol占栅格布局的2列// 设置GridCol偏移1列// 设置GridCol的顺序为1GridCol({span: 2, offset: 1, order: 2}) {Text("第五个GridCol")}.backgroundColor(Color.Orange)}}
}

在这里插入图片描述

示例代码中,第一个GridCol子组件没有设置orderorder默认等于0;第二个GridCol子组件设置order等于0;第三个GridCol子组件设置order等于1;第四个GridCol子组件没有设置orderorder默认等于0;第五个GridCol子组件设置order等于2。所以最终显示的顺序为:第一个GridCol、第二个GridCol、第四个GridCol、第三个GridCol、第五个GridCol

4. 栅格系统断点

栅格系统以设备的水平宽度作为断点依据,定义设备的宽度类型,形成了一套断点规则。

栅格系统默认断点将设备宽度分为 xs、sm、md、lg 四类:

  • xs:最小宽度类型设备[0, 320)
  • sm:小宽度类型设备[320, 520)
  • md:中等宽度类型设备[520, 840)
  • lg:大宽度类型设备[840, +∞)

4.1 GridRow 自定义断点

GridRow 中通过 breakpoints 参数自定义修改断点的取值范围,最多支持 6 个断点:

  • xs:最小宽度类型设备
  • sm:小宽度类型设备
  • md:中等宽度类型设备
  • lg:大宽度类型设备
  • xl:特大宽度类型设备
  • xxl:超大宽度类型设备
GridRow({breakpoints: {// 表示启用xs、sm、md、lg、xl、xxl共6个断点,小于200vp为xs,200vp-300vp为sm,300vp-400vp为md,4000vp-500vp为lg,500vp-600vp为xl,大于600vp为xxlvalue: ["200vp", "300vp", "400vp", "500vp", "600vp"],reference: BreakpointsReference.WindowSize,},
});

4.2 应用断点适配不同宽度设备

GridRow 的 columns 参数,GridCol 的 span、offset 参数可以根据断点分别设置不同的值。

例如:GridRow 的 columns 参数设置

  • xs(最小宽度类型设备)时,栅格布局的列数为2
  • sm(小宽度类型设备)时,栅格布局的列数为2
  • md(中等宽度类型设备)时,栅格布局的列数为4
  • lg(大宽度类型设备)时,栅格布局的列数为4
@Entry
@Component
struct GridRowLayout {build() {GridRow({columns: {xs: 2,sm: 2,md: 4,lg: 4}}) {GridCol() {Text("第一个GridCol")}.backgroundColor(Color.Red)GridCol({order: 0}) {Text("第二个GridCol")}.backgroundColor(Color.Green)GridCol({order: 1}) {Text("第三个GridCol")}.backgroundColor(Color.Blue)GridCol() {Text("第四个GridCol")}.backgroundColor(Color.Pink)}}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学网攻】 第(6)节 -- 三层交换机实现VLAN间路由

文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节 -- 交换机划分Vlan【学网攻】 第(5)节 -- Cisco VTP的使用 前言 第5章给大家讲了VTP,也是为这节课铺垫,带领大家慢慢进入路由的区…

idea插件开发-自定义语言7-Code Completion

自定义语言插件可以提供两种主要类型的代码完成:reference completion 和Contributor-based completion的完成。前者更容易实现,但只支持基本的补全动作。后者会复杂一些,但功能更强大支持所有三种完成类型(基本、智能和类名),并且可用于实现关键字完成等。 一、referen…

手势识别MATLAB代码

手势识别是智能设备常用的需求, 下面我们用MATLAB来识别手部的形态: 主程序main.m clc;clear all;close all;%清除命令行和窗口 imimread(DSC05815.JPG); [skin,bwycbcr,w,h] hand_segmentation(im); im1bwycbcr; % se strel(ball,[1 1 1;1 1 1;1 1 1]); im1 imdilate(im…

image标签展示所有图片

可以使用Vue.js中的v-for指令来循环展示所有的图片。首先&#xff0c;在Vue组件中定义一个数组&#xff0c;数组中存储所有的图片路径。然后&#xff0c;使用v-for指令在模板中循环遍历数组&#xff0c;使用img标签来展示每个图片。 以下是一个示例代码&#xff1a; <temp…

【Spring Boot 3】【JPA】枚举类型持久化

【Spring Boot 3】【JPA】枚举类型持久化 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花…

java面面试面经(面试过程)

一、校招一面面经 1.1 自我介绍(2min) 1.2 要求介绍项目一项目亮点以及做的具体工作 根据介绍项目进行细挖&#xff0c;其中包括方案设计、场景设计等等等 由于项目一种涉及数据库源的转换问题和限流方案&#xff0c;所以面试官拷打的是这两块&#xff0c;其中包括场景题&…

《Linux C编程实战》笔记:信号的发送

信号的发送主要由函数kill、raise、sigqueue、alarm、setitimer以及abort来完成 kill函数 kill函数用来发送信号给指定的进程。 #include<sys/types.h> #include<signal.h> int kill(pid_t pid,int sig); 该函数的行为与第一个参数pid有关&#xff0c;第二个参…

鸿蒙开发-UI-布局-网格

鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 鸿蒙开发-UI-布局-层叠布局 鸿蒙开发-UI-布局-弹性布局 鸿蒙开发-UI-布局-相对布局 鸿蒙开发-UI-布局-格栅布局 鸿蒙开发-UI-布局-列表 文章目录 前言 一、基本概念 二、开发布局 1.排列方式 2.设置行列间距 三、应用特性 1.网格数…

android usb2.0 协议基础(2)

2.4 USB逻辑部件 USB 逻辑部件 设备---》 接口 &#xff08;一个或多个&#xff09;&#xff1a;用于描述特定功能&#xff0c;包含多个端点----》端点&#xff08;一个或多个&#xff09;&#xff1a; 传输的最终对象端点号&#xff0c;传输类型传输方向&#xff0c;最大的数据…

设备通过GB28181注册到EasyCVR,平台看不到设备信息的排查方法汇总

智慧安防平台EasyCVR能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台支持设备通过4G、5G、WIFI、有线等方式进行视频流的接入与传输&#xff0c;支持的接入协议包括&#xff1…

大数据开发之Spark(RDD弹性分布式数据集)

第 1 章&#xff1a;rdd概述 1.1 什么是rdd rdd&#xff08;resilient distributed dataset&#xff09;叫做弹性分布式数据集&#xff0c;是spark中最基本的数据抽象。 代码中是一个抽象类&#xff0c;它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 1.1…

Zabbix 微信与钉钉告警配置部署

Zabbix 微信与钉钉告警配置部署 系统环境准备好&#xff1a; Lnmp zabbix-server&#xff1a;172.20.26.167 Mysql主从zabbix-agent&#xff1a;172.20.26.198、172.20.26.24 zabbix的安装部署可以查阅之前的文章&#xff1a;Zabbix 4.0安装部署自动发现及自动注册、自动添…

动态ip代理定义及工作原理

一听到IP代理&#xff0c;咱们有种似曾相识又陌生的感觉。到底IP代理是什么?它的工作原理是怎样的呢? 通常情况下&#xff0c;代理ip网用公网IP接入Int关采取双网卡结构&#xff0c;外网卡使ernet。 网络一(假定为公网internet)的终端A访问网络二(假定为公司内网)的终端B&am…

huggingface学习|云服务器部署Grounded-Segment-Anything:bug总会一个一个一个一个又一个的解决的

文章目录 一、环境部署&#xff08;一&#xff09;模型下载&#xff08;二&#xff09;环境配置&#xff08;三&#xff09;库的安装 二、运行&#xff08;一&#xff09; 运行grounding_dino_demo.py文件&#xff08;二&#xff09;运行grounded_sam_demo.py文件&#xff08;三…

2023年第十六届中国系统架构师大会(SACC2023):核心内容与学习收获(附大会核心PPT下载)

大会以“数字转型 架构演进”为主题&#xff0c;聚焦系统架构在数字化转型中的演进和应用。 与往届相比&#xff0c;本届大会最大的变化是从原来的大会演讲模式变革为专题研讨会模式。专题研讨会主题内容紧扣行业落地实践痛点与难点&#xff0c;多角度聚焦行业的架构演进之路。…

Python requests网络库源码分析(第三篇:通过学习异常模块,了解http协议)

前言 作者在requests包下&#xff0c;定义了exceptions模块&#xff0c;该模块中定义执行http请求过程中常见的错误&#xff0c;熟悉这些错误有助于我们写出健壮的业务程序&#xff0c;同时还能温习http的知识点&#xff0c;本文基于的requests版本为2.27.1 exceptions模块&…

openssl3.2/test/certs - 036 - 768-bit issuer key

文章目录 openssl3.2/test/certs - 036 - 768-bit issuer key概述笔记END openssl3.2/test/certs - 036 - 768-bit issuer key 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file my_openssl_linux_doc_036.txt * \note openssl3.2/test/certs - 036 - 768-…

关于网络安全 的 ARP欺骗 实验操作

实验设备&#xff1a; Windows server 2008 kali 1. vmware--上面菜单栏--虚拟机--设置--网络--NAT 模式 确定靶机与攻击机的连通性&#xff08;互相能 ping 通&#xff09; 靶机查看 arp 表&#xff08;arp -a&#xff09; 查看攻击机(kali)物理地址&#xff08;ip addr&…

SpringBoot整合ElasticSearch实现基础的CRUD操作

本文来说下SpringBoot整合ES实现CRUD操作 文章目录 概述spring-boot-starter-data-elasticsearch项目搭建ES简单的crud操作保存数据修改数据查看数据删除数据 本文小结 概述 SpringBoot支持两种技术和es交互。一种的jest&#xff0c;还有一种就是SpringData-ElasticSearch。根据…

github clone代码修改后上传到自己仓库

1、原理 把远端仓库删除&#xff0c;添加自己的仓库作为remote 仓库 2、步骤 1、创建 .gitingore文件&#xff0c;在里面填入要忽略的文件 doc/* file.txt *.ckpt 2、git命令修改远程仓库 git remote rm origin git remote add 你的仓库地址git commit -m "123"…