HarmonyOS应用开发实战(基础篇)Day05-《常见布局Row和Column》

HarmonyOS应用开发实战(基础篇)Day05-《常见布局Row和Column》
在这里插入图片描述


常见布局Row和Column


Column

Column 是鸿蒙(HarmonyOS)ArkUI 框架中最基础且常用的布局容器之一,用于在垂直方向(主轴为纵轴) 上排列子组件。其行为类似于 Android 中的 LinearLayout(orientation=vertical) 或 Web 开发中的 flex-direction: column

它适用于构建列表项、表单、卡片式布局等需要纵向堆叠内容的场景。通过灵活配置其属性,开发者可以精确控制子组件的位置、间距与对齐方式。

通用属性

width

width 用于设置 Column 容器自身的宽度。支持多种单位(如 vppx、百分比 %),也支持使用 Length 类型的常量(如 100% 表示占满父容器宽度)。

Column(){// 子组件}.width('100%')// 占满父容器宽度
💡 提示:若未显式设置宽度,默认会根据子组件的最大宽度自适应。
在这里插入图片描述


在这里插入图片描述

height

height 控制 Column 的高度,用法与 width 类似。常用于限制容器高度或实现滚动区域(配合 Scroll 组件)。

Column(){/* ... */}.height(200)// 固定高度 200vp
在这里插入图片描述

border

边框通过 border 属性设置,其参数类型为 BorderOptions 接口,包含多个可选字段:

  • width:边框粗细;
  • color:边框颜色;
  • radius:圆角半径(可实现圆角矩形);
  • style:边框样式(如实线、虚线等,部分版本支持)。
.border({ width:2, color:'#FF0000', radius:10})
🔍 源码视角BorderOptions 是一个接口,意味着你可以只传入需要的属性,其余使用默认值。
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

padding

padding 设置容器内部边距,即子组件与容器边框之间的距离。注意:它影响的是内容区到边框的距离,而非子组件之间的间距。

.padding(10)// 四周内边距均为 10vp.padding({ left:5, right:15})// 精确控制各方向
📌 关键区别padding 是“内边距”,margin 是“外边距”。
在这里插入图片描述


在这里插入图片描述

margin

margin 控制当前 Column 与其外部兄弟组件或父容器之间的距离,属于“外边距”。

.margin(20)// 外边距 20vp
⚠️ 注意margin 不会影响子组件之间的间距,仅作用于当前容器整体。
在这里插入图片描述

space

当需要统一设置所有子组件之间的垂直间距时,使用 space 属性比逐个设置 margin 更高效、更清晰。

Column({ space:10}){// 所有子组件之间间隔 10vpText('Item 1')Text('Item 2')Text('Item 3')}
最佳实践:优先使用 space 而非为每个子项加 margin,代码更简洁且语义明确。
在这里插入图片描述

alignItems

alignItems 控制子组件在交叉轴(水平方向) 上的对齐方式。由于 Column 的主轴是垂直的,因此交叉轴为水平方向。

可选值来自 HorizontalAlign 枚举:

HorizontalAlign.Start

子组件左对齐(从左开始)。

在这里插入图片描述
HorizontalAlign.Center

子组件水平居中。

在这里插入图片描述
HorizontalAlign.End

子组件右对齐(靠右结束)。

在这里插入图片描述
🧭 记忆技巧Column → 垂直排列 → alignItems 控制左右对齐 → 使用 HorizontalAlign
在这里插入图片描述


在这里插入图片描述

justifyContent

justifyContent 控制子组件在主轴(垂直方向) 上的分布方式。默认值为 FlexAlign.Start(顶部对齐)。

可选值包括:

FlexAlign.Start

顶部对齐(默认)。

在这里插入图片描述
FlexAlign.Center

垂直居中。

在这里插入图片描述
FlexAlign.End

底部对齐。

在这里插入图片描述
FlexAlign.SpaceBetween

首尾元素贴边,中间均匀分布。

在这里插入图片描述
FlexAlign.SpaceAround

每个元素上下间距相等,首尾留一半间距。

在这里插入图片描述
FlexAlign.SpaceEvenly

所有间距(包括顶部和底部)完全相等。

🎯 应用场景SpaceBetween:常用于页脚按钮(“取消”在左,“确定”在右);Center:用于居中弹窗内容;SpaceEvenly:用于均匀分布导航图标。
在这里插入图片描述


在这里插入图片描述

单位问题

在 HarmonyOS 开发中,合理选择尺寸单位对适配多设备至关重要。

px(像素)

  • 定义:物理像素单位,1px = 1 个屏幕像素点。
  • 特点不随屏幕密度缩放,在高 DPI 设备上显示更小。
  • 适用场景:需要绝对精确的场景,如 1px 分割线、细边框。
风险:在不同设备上视觉大小不一致,可能导致 UI 错位。

vp(虚拟像素)

  • 定义:鸿蒙推荐的逻辑像素单位,系统会根据设备 DPI 自动换算为实际 px。
  • 换算:1vp = 1px @ 160 DPI;在 320 DPI 设备上,1vp = 2px。
  • 特点保证视觉一致性,相同 vp 值在不同设备上看起来大小相近。
  • 适用场景绝大多数 UI 元素,如字体、按钮、间距、容器尺寸等。

如何选择?

场景推荐单位
文字大小、按钮、容器宽高、间距vp
1px 分割线、极细边框px
设计稿标注(通常基于 vp)✅ 直接使用 vp

注意事项

  • 设计师提供的 HarmonyOS 设计稿通常以 vp 为单位,开发时应直接使用;
  • 避免混用 pxvp,除非有明确需求;
  • 使用 px 时,可通过 px2vp() 工具函数进行转换(如有需要)。

Row

RowColumn 的“水平兄弟”,用于在水平方向(主轴为横轴) 上排列子组件。它同样基于 Flex 布局模型,默认从左到右排列。

🔄 核心区别Column 主轴为垂直,Row 主轴为水平。因此,两者的对齐属性所作用的方向互换。

对比效果:

Column(垂直排列)

在这里插入图片描述

Row(水平排列)

在这里插入图片描述
💡 代码复用提示:同一套子组件,仅需将 Column 替换为 Row,即可实现横向布局,极大提升开发效率。

alignItems

Row 中,由于主轴是水平的,交叉轴变为垂直方向,因此 alignItems 使用 VerticalAlign 枚举:

VerticalAlign.Top

子组件顶部对齐。

在这里插入图片描述

VerticalAlign.Center

垂直居中对齐。

在这里插入图片描述

VerticalAlign.Bottom

底部对齐。

在这里插入图片描述
🧭 记忆技巧Row → 水平排列 → alignItems 控制上下对齐 → 使用 VerticalAlign

justifyContent

justifyContentRow 中控制水平方向(主轴) 的分布,其取值与 Column 完全相同(仍为 FlexAlign 枚举),只是作用方向变为左右。

  • Start:左对齐(默认)
  • Center:水平居中
  • End:右对齐
  • SpaceBetween / SpaceAround / SpaceEvenly:水平间距分布
无需重复学习:只要理解主轴方向,justifyContent 的行为逻辑完全一致。
在这里插入图片描述

总结建议

布局主轴方向alignItems 方向justifyContent 方向
Column垂直 ↓水平(HorizontalAlign垂直(FlexAlign
Row水平 →垂直(VerticalAlign水平(FlexAlign
🏗️ 开发口诀:“Column 看左右,Row 看上下” —— 指 alignItems;“主轴用 justifyContent,交叉轴用 alignItems”。

掌握 RowColumn 的异同,是构建鸿蒙应用 UI 的第一步。结合 spacepaddingmargin 和对齐属性,几乎可以实现所有常见的线性布局需求。

全套代码

@Entry @Component struct Index {build(){/* Column({space:10}){ Text('你好,VON') .width(100) .height(100) .border({width:1,color:'red',radius:50}) Text('你好,VON') .width(100) .height(100) .border({width:1,color:'red',radius:50}) Text('你好,VON') .width(100) .height(100) .border({width:1,color:'red',radius:50}) } .width('100%') .height('100%') .border({width:1,color:'green',radius:50}) .alignItems(HorizontalAlign.End) .justifyContent(FlexAlign.SpaceEvenly) * */Row({space:10}){Text('你好,VON').width(100).height(100).border({width:1,color:'red',radius:50})Text('你好,VON').width(100).height(100).border({width:1,color:'red',radius:50})Text('你好,VON').width(100).height(100).border({width:1,color:'red',radius:50})}.width('100%').height('100%').border({width:1,color:'green',radius:50}).alignItems(VerticalAlign.Center).justifyContent(FlexAlign.)}}

Read more

股票数据接口API实例代码python、JAVA等多种语言演示免费获取实时数据、历史数据、CDMA、KDJ等指标数据

股票数据接口API实例代码python、JAVA等多种语言演示免费获取实时数据、历史数据、CDMA、KDJ等指标数据

随着金融科技的快速发展,券商、基金公司的数字化转型离不开高质量的股票数据支撑。股票数据接口的选择直接关系到投资决策的准确性和效率。在这个数据驱动的时代,善用优质的数据接口,就能在股市抢占先机,本文中所有接口均可直接在浏览器打开获取数据,为了便于大家验证有效性,已经做好了超链接,直接点击即可! **[沪深两市股票列表] API接口链接(可点击验证):http://api.momaapi.com/hslt/list/您的Token 【实时数据接口】 **[沪深两市买卖五档盘口] API接口链接(可点击验证):http://api.momaapi.com/hsstock/real/five/股票代码/证书您的Token [沪深两市最新分时交易] API接口链接(可点击验证):http://api.momaapi.com/hsstock/latest/股票代码.市场(如000001.SZ)/分时级别(如d)/除权方式/

By Ne0inhk
JDK 17 下载与安装的详细图文教程

JDK 17 下载与安装的详细图文教程

一、下载 JDK 17 1.官网下载: * https://www.oracle.com/java/technologies/javase/jdk17-downloads.html 2.百度网盘提取下载 通过网盘分享的文件:jdk-17_windows-x64_bin.exe 链接: https://pan.baidu.com/s/1pFwmSk9VlWRnuH2tspqBiw 提取码: q984 二、安装 JDK 17 点击下一步 安装完成 三、配置环境 1. 打开环境变量设置 * Win + R → 输入 sysdm.cpl → 回车 * 点击「高级」→「环境变量」

By Ne0inhk

AgentScope Java 集成 Spring AI Alibaba Workflow 完整指南

AgentScope Java 集成 Spring AI Alibaba Workflow 完整指南 结合 agentscope-ai/agentscope-java、alibaba/spring-ai-alibaba 及 java2ai 生态中 Graph Core 工作流规范,以下是可落地的集成方案,涵盖核心思路、工程配置、代码实现、最佳实践四部分,兼顾 AgentScope 智能体特性与 Spring AI 工作流的工程化能力。 一、核心集成思路 1. 能力边界划分(关键前提) 框架/组件核心职责AgentScope Java智能体(Agent)生命周期管理、多智能体协作、工具调用、上下文(Context)管理Spring AI Alibaba阿里云大模型(通义千问/百炼)标准化调用、

By Ne0inhk

IDEA 配置 Tomcat 运行 JSP 项目:环境搭建与页面访问

IDEA 配置 Tomcat 运行 JSP 项目:环境搭建与页面访问 本指南将帮助您在 IntelliJ IDEA 中配置 Tomcat 服务器,以运行 JSP(JavaServer Pages)项目。整个过程包括环境搭建、项目创建、运行配置和页面访问。我会逐步解释,确保结构清晰且基于真实实践。以下是详细步骤: 1. 环境准备 在开始配置前,确保您的系统已安装以下软件: * JDK(Java Development Kit):推荐版本 JDK 8 或更高(例如,JDK 11)。您可以从 Oracle 官网下载并安装。 * IntelliJ IDEA:使用 Ultimate 版本(支持 Web 开发)

By Ne0inhk