第十一节HarmonyOS 常用容器组件1-Row与Column

news2025/1/31 8:00:50

Column&Row组件的使用

1、概述

容器组件是一种比较特殊的组件,它可以包含其他的组件,而且按照一定的规律布局,帮助开发者生成精美的页面。容器组件除了放置基础组件外,也可以放置容器组件,通过多层布局的嵌套,可以布局出更丰富的页面。

ArkTS为我们提供了丰富的容器组件来布局页面。

2、组件介绍

布局容器概念

线性布局容器表示按照垂直方向或者水平方向排列子组件的容器。ArkTs提供了Column和Row容器来实现线性布局。

  • Column表示沿垂直方向布局的容器
  • Row表示水平方向布局的容器

主轴和交叉轴概念

     在布局容器中,默认存在两根轴,分别是主轴与交叉轴,这两个轴始终是相互垂直的。不同的容器中主轴的方向是不一样的。

  • 主轴:在Column容器中的子组件是按照从上到下的垂直方向布局的,其主轴的方向就是垂直方向;在Row容器中的子组件是按照从左到右的水平方向布局的,其主轴的方向就是水平方向。
  • Column容器&Row容器主轴图:

Row容器

  • 交叉轴:与主轴垂直相交的轴线,如果主轴是垂直方向,则交叉轴就是水平方向;如果主轴的水平方向,

Column容器&Row容器交叉轴图:

Row容器

3、属性介绍

了解布局容器的主轴与交叉轴,主要为了让大家理解组件在主轴与交叉轴上排列的方式。

          下面我们主要讲解Column和Row容器的这两个属性justifyContent和alignItems。

属性名称

描述

JustifyContent

设置子组件在主轴方向上的对齐格式

alignItems

设置子组件在交叉轴方向上的对齐方式

1、主轴方向的对齐(justifyContent)

子组件在主轴方向上的对齐使用justifyContent属性来设置,其参数类型是FlexAlign。FlexAlign定义了以下几种类型:

  • Start:元素在主轴方向首端对齐,第一个元素与行首对齐,同时后续元素与前一个对齐。

  • Center:元素在主轴方向中心对齐,第一个元素与行首的距离以及最后一个相同。
  • End:元素在主轴方向与尾端对齐,最后一个元素与行尾对齐,其他元素与后一个对齐。

  • SpaceBetween:元素在主轴方向均匀分布弹性元素,相邻元素之间的距离相同。第一个元素与行首对齐,最后一个元素与行尾对齐。

  • SpaceAround:元素在主轴方向均匀分配,相邻元素之间的距离相同。第一个元素与行首的距离和最后一个元素与行尾的距离是相邻元素之间距离。

  • SpaceEvenly:元素在主轴方向等距离分布,无论是相邻元素之间还是元素到边界的距离都一样。

2、交叉轴方向的对齐(alignItems)

子组件在交叉轴方向上的对齐方式使用alignItems属性来设置。

Column容器的主轴是垂直方向,交叉轴是水平方向,其参数类型为HorizontalAlign(水平对齐)HorizontalAlign定义了以下几种类型:

  • Start:设置子组件在水平方向上按照起始端对齐

  • Center(默认):设置子组件在水平方向上居中对齐。

  • End:设置子组件在水平方向上按照末端对齐

        Row容器的主轴是水平方向,交叉轴是垂直方向,其参数类型为VerticalAlign(垂直对齐),VerticalAlign定义了以下几种类型:

  • Top:设置子组件在垂直方向上居顶部对齐

  • Center(默认):设置子组件在垂直方向上居中对齐

  • Bottom:设置子组件在垂直方向上居底部对齐

4、接口介绍

Column和Row容器的接口:

容器组件

接口

Column

Column(value?:{space?: string | number})

Row

Row(value?:{space?: string | number})

Column和Row容器的接口都有一个可选参数space,表示子组件在主轴方向上的间距。

代码如下:

@Entry
@Component
struct Index {
  build() {
    Column({space:20}) {
      Text("Image")
        .width(300)
        .height(60)
        .backgroundColor("#99B2DF")
        .textAlign(TextAlign.Center)
        .fontColor(Color.White)
        .fontSize(22)
      Text("Text")
        .width(300)
        .height(60)
        .backgroundColor("#99B2DF")
        .textAlign(TextAlign.Center)
        .fontColor(Color.White)
        .fontSize(22)
      Text("TextInput")
        .width(300)
        .height(60)
        .backgroundColor("#99B2DF")
        .textAlign(TextAlign.Center)
        .fontColor(Color.White)
        .fontSize(22)
      Text("Button")
        .width(300)
        .height(60)
        .backgroundColor("#99B2DF")
        .textAlign(TextAlign.Center)
        .fontColor(Color.White)
        .fontSize(22)

    }
    .width('100%')
    .height("100%")
    .justifyContent(FlexAlign.Start)
    .backgroundColor("#BDD7EE")
  }
}

效果如下:

如此可见,在row组件的主轴方向上子组件之间的距离。

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

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

相关文章

详解Spring工厂是如何获取Aop中的代理对象的

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…

如何选择适合的光电传感器与 STM32 微控制器进行接口设计

本文介绍了如何选择适合的光电传感器与 STM32 微控制器进行接口设计的方法。首先我们将介绍一些选择光电传感器的关键因素,包括测量范围、响应时间、分辨率和输出类型。然后我们将介绍如何根据所选传感器的特性进行硬件连接和接口设计。最后,我们将提供示…

区间合并笔记

文章目录 什么是区间合并怎么做区间合并AcWing 803. 区间合并思路解析my - CODEdalao の CODE 什么是区间合并 区间合并是指给定多个区间,让你将重合的区间合并为一个区间 怎么做区间合并 区间合并类问题大多三个办法: 按左端点排序按右端点排序按左右…

计算机组成原理,硬件组成,存储器,控制器,控制器的任务, 运算器,中央处理器CPU,主存

计算机组成原理 课程需求 前导课程: 后继课程 汇编 操作系统 数逻 组成 系统结构 数电 微机原理 课程结构 计算机特性 1 从外部角度来看计算机的特性 快速 通用 准确 逻辑 2从外部特性与内部特性的关系 计算机组成 一 硬件组成 运算器 主要功能是进行算术…

11.1每日一题(关于函数定义域)

f(x1):自变量为x,x1为中间变量,所以f(x1)的定义域的取值范围是x的取值范围 f(x):自变量为x,f(x)的定义域等价于f(x1)中 x1整体的定义域

使用凌鲨进行内网穿透

为了方便在本地进行开发和调试工作,有时候需要安全地连接内网或Kubernetes集群中的服务。 在net proxy server中可以限制访问用户,也可以设置端口转发的密码。 使用 连接端口转发服务 列出可转发端口 可转发端口是服务端设置的,不会暴露真…

阵列信号处理---频率-波数响应和波束方向图

波束延迟求和器 阵列是由一组全向阵元组成,阵元的位置为 p n p_n pn​,如下图所示: 阵元分别在对应的位置对信号进行空域采样,这样就产生了一组信号信号为 f ( t , p ) f(t,p) f(t,p),具体表示如下: f ( t , p ) [ f…

2023.12.2 做一个后台管理网页(左侧边栏实现手风琴和隐藏/出现效果)

2023.12.2 做一个后台管理网页(左侧边栏实现手风琴和隐藏/出现效果) 网页源码见附件,比较简单,之前用很多种方法实现过该效果,这次的效果相对更好。 实现功能: (1)实现左侧边栏的手…

使用PCReg.PyTorch项目训练自己的数据集进行点云配准

项目地址: https://github.com/zhulf0804/PCReg.PyTorch/tree/main 网络简介: 网络是基于PointNet Concat FC的,它没有其它复杂的结构,易于复现。因其简洁性,这里暂且把其称作点云配准的Benchmark。因作者源码中复杂…

深度学习记录--logistic回归函数的计算图

计算图用于logistic回归函数 先回顾一下单一样本的logistic回归损失函数的公式,公式如下: 将logistic函数用计算图表示出来(以两个基础量为例),计算图如下: 前向传播已经完成,接下来完成后向传播 运用链式法则依次求…

使用 STM32 微控制器读取光电传感器数据的实现方法

本文介绍了如何使用 STM32 微控制器读取光电传感器数据的实现方法。通过配置和使用STM32的GPIO和ADC功能,可以实时读取光电传感器的模拟信号并进行数字化处理。本文将介绍硬件连接和配置,以及示例代码,帮助开发者完成光电传感器数据的读取。 …

【探索Linux】—— 强大的命令行工具 P.19(多线程 | 线程的概念 | 线程控制 | 分离线程)

阅读导航 引言一、 Linux线程概念1. 什么是线程2. 线程的概念3. 线程与进程的区别4. 线程异常 二、Linux线程控制1. POSIX线程库2. 创建线程 pthread_create() 函数(1)头文件(2)函数原型(3)参数解释&#x…

elasticsearch 内网下如何以离线的方式上传任意的huggingFace上的NLP模型(国内闭坑指南)

es自2020年的8.x版本以来,就提供了机器学习的能力。我们可以使用es官方提供的工具eland,将hugging face上的NLP模型,上传到es集群中。利用es的机器学习模块,来运维部署管理模型。配合es的管道处理,来更加便捷的处理数据…

深度学习记录--logistic回归损失函数向量化实现

前言 再次明确向量化的目的:减少for循环的使用,以更少的代码量和更快的速度来实现程序 正向传播的向量化 对于,用向量化来实现,只需要就可以完成,其中,, ps.这里b只是一个常数,但是依然可以加在每个向量里(python的…

TLS协议握手流程

浅析 TLS(ECDHE)协议的握手流程(图解) - 知乎 前言 通过 wireshark 抓取 HTTPS 包,理解 TLS 1.2 安全通信协议的握手流程。 重点理解几个点: TLS 握手流程:通过 wireshark 抓取 HTTPS 包理解…

项目中遇到的半导体公司

作为一个技术人,我并不是亲美,从技术的实事求是角度讲,不得不感叹欧美的半导体技术。他们的datasheet能学到的东西太多太多;我甚至佩服他们缜密的逻辑。从他们的文章中领悟我们技术到底有多low,没办法一个一个了解所有…

Nginx转发内网Flv视频流

1、环境说明 Docker Nginx:1.21.5 实现Nginx ssl转发内网flv视频流 2、配置nginx.conf http {upstream live {server 10.10.10.10:8300;keepalive 64;}map $http_upgrade $connection_upgrade {default upgrade; close;}server {listen 80;listen 443…

ssm+vue的罪犯信息管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的罪犯信息管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

Redis hash表源码解析

整体数据结构:链式hash解决hash冲突、采用渐进式hash来完成扩容过程。 /** 哈希表节点*/ typedef struct dictEntry {// 键void *key;// 值union {void *val;uint64_t u64;int64_t s64;} v;// 指向下个哈希表节点,形成链表struct dictEntry *next;} dict…

Adobe Acrobat DC 将PDF转曲步骤

1、编辑--更多--背景--添加 2、只需要将不透明度调为0即可。 3、工具--印刷制作 4、拼合器预览 5、只需要将下面标出来的地方勾选即可 6、可以另存为,不影响源文件 7、检查是否成功,文件--属性--字体为空,说明成功了 参考资料: …