鸿蒙布局Column/Row/Stack

news2025/1/18 10:42:59

鸿蒙布局Column/Row/Stack

  • 简介
  • 我们以Column为例进行讲解
      • 1. Column({space: 10}) 这里的space: 10,表示Column里面每个元素之间的间距为10
      • 2. width('100%'),height('100%') 表示宽高占比
      • 3. backgroundColor(0xffeeeeee) 设置背景颜色
      • 4. padding({top: 50}) 设置顶部内边距
      • 5. border({width: 1,color: Color.Red,style: BorderStyle.Dotted,radius: 10}) 设置容器的边框
      • 6. justifyContent(FlexAlign.Center)表述元素在主轴排列方式
      • 7. .alignItems(HorizontalAlign.Start)表述元素在副轴排列方式
  • Stack---堆叠布局方式
    • alignContent(Alignment.Center)排列方式介绍
    • zIndex的使用

简介

鸿蒙开发中,最常用的两种线性布局

Column:垂直布局方式
Row:水平布局方式

在这里插入图片描述
在这里插入图片描述

我们以Column为例进行讲解

请看一下下面代码

@Entry
@Component
struct ColumnTest {
  build() {
    Column({space: 10}){
      Text('Column垂直布局')
      Column({space:20}){
        Button('测试')
          .width('50%')
          .backgroundColor(Color.Green)
        Button('测试1')
          .width('50%')
          .backgroundColor(Color.Red)
        Button('测试2')
          .width('50%')
          .backgroundColor(Color.Blue)
      }
      .width('80%')
      .height('50%')
      .backgroundColor(Color.White)
      .justifyContent(FlexAlign.Center)
      // .alignItems(HorizontalAlign.Start)
      .border({width: 1,color: Color.Red,style: BorderStyle.Dotted,radius: 10})
    }
    .width('100%')
    .height('100%')
    .backgroundColor(0xffeeeeee)
    .padding({top: 50})

  }
}

1. Column({space: 10}) 这里的space: 10,表示Column里面每个元素之间的间距为10

2. width(‘100%’),height(‘100%’) 表示宽高占比

3. backgroundColor(0xffeeeeee) 设置背景颜色

4. padding({top: 50}) 设置顶部内边距

```
padding(50) 表示上下左右,内边距全部都是50
padding({top: 50,left: 30}) 表示顶部内边距50,左边内边距30
```
如果使用margin外边距,道理类似

5. border({width: 1,color: Color.Red,style: BorderStyle.Dotted,radius: 10}) 设置容器的边框

```
width: 1 边框宽1
color: Color.Red 边框颜色
style: BorderStyle.Dotted 边框线条方式
    Dotted 点
    Dashed 线段
    Solid 实线
radius: 10 设置容器圆角
```

6. justifyContent(FlexAlign.Center)表述元素在主轴排列方式

对于Column来说主轴就是Y(竖轴)

对于Row来说主轴就是X(横轴)

FlexAlign有以下几种排列方式:

FlexAlign.Start 头部对齐
FlexAlign.Center 中间对齐
FlexAlign.End 底部对齐
FlexAlign.SpaceAround 元素与元素之间,元素与顶部或底部之间距离一样
FlexAlign.SpaceBetween 元素与元素之间距离一样,元素与顶部或底部之间距离为0
FlexAlign.SpaceEvenly 元素与元素之间距离一样,元素与顶部或底部之间距离为元素相邻间距的一般

FlexAlign.Start 展示方式
在这里插入图片描述

FlexAlign.End 展示方式
在这里插入图片描述

FlexAlign.Center 展示方式
在这里插入图片描述

FlexAlign.SpaceAround 展示方式
在这里插入图片描述

FlexAlign.SpaceBetween 展示方式
在这里插入图片描述

FlexAlign.SpaceEvenly 展示方式
在这里插入图片描述

7. .alignItems(HorizontalAlign.Start)表述元素在副轴排列方式

对于Column来说副轴就是X(横轴)

对于Row来说副轴就是Y(竖轴)

HorizontalAlign有以下几种排列方式:

HorizontalAlign.Start
HorizontalAlign.Center
HorizontalAlign.End

HorizontalAlign.Start 展示方式
在这里插入图片描述

HorizontalAlign.Center 展示方式
在这里插入图片描述

HorizontalAlign.End 展示方式
在这里插入图片描述

Stack—堆叠布局方式

这是一种在屏幕Z轴方向上的一种布局方式,类似于将所有的元素堆叠在一起,最后加入的在最上层,除非有明确指明放在那一层。

Stack(){
        Column()
          .width(300)
          .height(300)
          .backgroundColor(Color.Black)
        Column()
          .width(250)
          .height(250)
          .backgroundColor(Color.Orange)
        Column()
          .width(200)
          .height(200)
          .backgroundColor(Color.Red)
      }
      .width('100%')
      .height('50%')
      .backgroundColor(Color.White)
      .alignContent(Alignment.Center)

在这里插入图片描述

上面我们定义了3个Column,以Stack的方式堆叠在一起。

这里面的宽高/背景色,就不再介绍。

alignContent(Alignment.Center)排列方式介绍

Alignment有以下几种形式

Alignment.TopStart  左上角
Alignment.Top 顶部中间
Alignment.TopEnd 右上角
Alignment.Start 中间左边
Alignment.Center 中间
Alignment.End 中间右边
Alignment.BottomTop 左下角
Alignment.Bottom 底部中间
Alignment.BottomEnd 右下角

在这里插入图片描述

zIndex的使用

除了按照顺序添加元素外,还可以使用zIndex手动调整添加元素在stack中的第几层。

Column()
    .width(100)
    .height(100)
    .backgroundColor(Color.Red)
    .zIndex(4)

zIndex的值越来,层级就越高,也就是在最上层,也最容易被看到。

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

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

相关文章

基于Springboot+Vue的Java项目-农产品直卖平台系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

【docker】SpringBoot应用容器镜像日志挂载

启动镜像时候使用 -v 挂载 首先得在宿主机创建目录:/workspace/java/demo/logs mkdir -pv /workspace/java/demo/logs 启动镜像 docker run -p 8080:8080 -itd -v /workspace/java/demo/logs/:/logs/ 192.168.2.1:5000/demo:0.0.1-SNAPSHOT -v /workspace/ja…

VMware虚拟机没有网,无法设置网络为桥接状态

今天需要使用Ubuntu18但现有虚拟机是Ubuntu20,由于硬盘空间不够大,所以删除了原来的虚拟机并重新搭建Ubuntu18的环境,然后发现虚拟机没有网络,而我之前的虚拟机这一切都是正常的。 在网络设置里勾选的是桥接模式但无法联网&#x…

如何基于可靠事件模式实现最终一致性?

今天我们一起来探讨一个分布式环境下的常见问题,这个问题与数据的一致性有关。那么,什么是数据一致性呢?要回答这个问题,需要我们回顾一下单块系统和分布式系统中对于数据处理的不同需求。 我们知道,传统的单块系统通常都只与一个数据库进行交互,所有的数据处理过程都位于…

前端连续发送同一个请求时,终止上一次请求

场景:几个tab页之间快速的切换(tab页只是参数不同,下边的数据渲染给同一个data)就会导致如果我在1,2,3,tab页按照顺序快速点击,发送三个请求,我想要展示的是3但是如果1或者2请求响应的时间比3长…

广汽原车控制系统CAN协议控制汽车基本信息获取及数据应用

在现代汽车工业的迅速发展中,车辆控制系统的智能化和网络化已成为提升汽车性能的关键。广汽作为中国汽车行业的佼佼者,其在原车通信网络方面也取得了显著的成就。特别是广汽原车CAN(Controller Area Network)协议的应用&#xff0…

unordered_map、unordered_set底层封装

文章目录 一、先实现哈希桶1.1哈希桶的实现方法1.2日常普遍的哈希桶存放的数据有两种:字符串和整形1.3哈希桶的实现代码详解1.3.1哈希桶的两种仿函数(int和string)1.3.2哈希桶的节点(如果桶非常深,这里考虑挂红黑树&am…

k8s 网络组件详细 介绍

目录 一 k8s 有哪些网络组件 二 k8s 网络概念 1, k8s 三种网络 2,K8S 中 Pod 网络通信 2.1 Pod 内容器与容器之间的通信 2.2 同一个 Node 内 Pod 之间的通信 2.3 不同 Node 上 Pod 之间的通信 三 Flannel 网络组件 1,Flannel …

leetcode.所有可能的路径(python)

找到从节点0到n-1的所有路径,肯定是用dfs算法,不过有两种思考方式: 一种是:从后往前考虑。如果这条路能到n-1节点,那么dfs返回一个rec列表,里面存路径。 class Solution:def allPathsSourceTarget(self, …

C语言数据结构(超详细讲解)| 栈和队列的实现

栈和队列的实现 引言 在计算机科学的世界里,数据结构是我们构建各种复杂算法和解决问题的基石。其中,栈(Stack)和队列(Queue)作为两种经典的数据结构,在解决实际问题时发挥着不可或缺的作用。…

【回溯 代数系统】679. 24 点游戏

本文涉及知识点 回溯 代数系统 LeetCode679. 24 点游戏 给定一个长度为4的整数数组 cards 。你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [‘’, ‘-’, ‘*’, ‘/’] 和括号 ‘(’ 和 ‘)’ 将这些卡片上的数字排列成数学表达式…

【C#】WPF加载浏览器

结果展示 下载SDK 前端代码 红色框住的为添加代码 <Window x:Class"WPFwebview.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://…

TCP四次挥手——断开连接 滑动窗口-流量控制

四次挥手 在TCP的四次挥手中&#xff0c;其重要作用就是释放客户端和服务器的连接。 这里的一些参数非常重要&#xff0c;因为这些参数的作用是为了表达TCP四次挥手断开连接的过程。 其中的参数如下 1.FIN&#xff1a;FIN (Finish) 是TCP协议中的一个标志位&#xff0c;用于…

推荐网站(9)pixabay免费可商用的图片、视频、插画、矢量图、音乐

今天推荐一款可以免费可商用的图片、视频、插画、矢量图、音乐的资源网站&#xff0c;这里面的所以东西都是免费的&#xff0c;并且可以商用。对那些做视频剪辑的人来说帮助非常大。它里面的资源非常的丰富&#xff0c;质量也高。 比如搜索下雨 链接直达&#xff1a;https://pi…

解决webstorm没有vue语法提示;webstorm没有代码提示

解决webstorm没有vue语法提示&#xff1b;webstorm没有代码提示 使用webstorm 2023.x 开发vue项目。发现死活没有vue语法提示&#xff0c;即便是npm install、清理缓存。对比其他vue项目却有语法提示&#xff0c;最后发现依赖库被忽略了&#xff1a; 删除掉node_modules 的忽略…

huggingface:利用git克隆目标资源

前言 因为有很多模型资源都被放在了huggingface上&#xff0c;为了下载它们&#xff0c;着实让一个不懂git的人犯了难&#xff0c;绕了很多远路&#xff0c;甚至将不需要解决的问题也都拿上了台面&#xff0c;因此我将在本篇博客中记载一些关于【huggingface】中利用git克隆目标…

apisix3.9.1 和 dashboard 离线安装

服务器配置 centos7 linux x86 64 前置 需要将离线安装包上传到服务器上 {上传目录 /root/apisix-soft/ } 【建议:优先上传etcd-*.jar \ apisix-*.rpm \ cyrus-*.rpm \ openldap-*.rpm 等安装好apisix后再上传apisix-dashboard-*.rpm】 可以自行网上寻找&#xff0c;或找一台可…

Python接口自动化测试之动态数据处理

在前面的知识基础上介绍了在接口自动化测试中&#xff0c;如何把数据分离出来&#xff0c;并且找到它的共同点&#xff0c;然后依据这个共同点来找到解决复杂问题的思想。我一直认为&#xff0c;程序是人设计的&#xff0c;它得符合人性&#xff0c;那么自动化测试的&#xff0…

使用命令查看电脑最大支持物理内存容量

一、Windows 系统 以管理员身份运行 cmd C:\WINDOWS\system32>wmic memphysical get maxcapacity /format:value将返回值除以1024&#xff0c;再除以1024&#xff0c;即本机最大支持的内存容量 或一行命令直接获取返回值 for /f "tokens2 delims" %I in (wmic…

怎么给视频加水印?2招轻松搞定

在数字媒体时代&#xff0c;视频水印作为一种有效的版权保护手段&#xff0c;被广泛应用于各种场景。给视频添加水印不仅可以防止内容被恶意盗用&#xff0c;还能增加视频的辨识度&#xff0c;提升品牌形象。本文将为您介绍2种简单易行的方法&#xff0c;教您怎么给视频加水印&…