HarmonyOS应用开发实战:猫猫大作战-`Row` 容器的横排套路、`justifyContent` 水平排列、`alignItems` 垂直对齐
前言游戏主菜单除了标题和按钮常有一个「最高分徽章」——把图标、分数数字、NEW 标三个元素横排成一个小徽章挂在标题上方或右上角。这种「图标 文字 标签」的横排组合是Row容器最经典的场景。本篇以「猫猫大作战」主菜单的最高分徽章为锚点把Row容器的横排套路、justifyContent水平排列、alignItems垂直对齐、margin子间距讲透。读完本篇你将能独立写出三段横排徽章、两端贴边横排、图标按钮组三种横排布局。提示本系列不讲 ArkTS 基础语法与环境搭建假设你已跟完第 1–7 篇。一、场景拆解最高分徽章规格打开entry/src/main/ets/pages/Index.ets的MainMenuView最高分徽章横排三段// 来源entry/src/main/ets/pages/Index.ets MainMenuView() 改造片段 Row() { Text().fontSize(20) Text(最高分: ${this.highScore}) .fontSize(14) .fontColor(#2C3E50) .fontWeight(FontWeight.Bold) .margin({ left: 6 }) if (this.isNewHigh) { Text(NEW) .fontSize(10) .fontColor(#FFFFFF) .backgroundColor(#E74C3C) .borderRadius(4) .padding({ left: 4, right: 4, top: 2, bottom: 2 }) .margin({ left: 6 }) } } .padding({ left: 12, right: 12, top: 6, bottom: 6 }) .backgroundColor(rgba(255,255,255,0.7)) .borderRadius(16) .alignItems(VerticalAlign.Center) .margin({ bottom: 16 })徽章规格拆解维度取值作用容器Row三段横排子间距margin.left: 6图标/文字/NEW 标之间 6vp内边距padding 12/6内容与徽章边呼吸空间底色rgba(255,255,255,0.7)半透明白浮在渐变蓝上圆角16胶囊形徽章垂对齐VerticalAlign.Center三段顶部对齐文字基线居中关键经验徽章圆角 16比卡片 12 大比按钮 28 小——胶囊感但不全圆是「徽章」专属甜区。二、Row 容器核心属性速览参考 线性布局 (Row/Column) 官方指南。Row是水平线性容器子元素自左而右排列。2.1 本篇用到的属性属性类型作用本篇取值spacenumber子元素统一间距未用用 margin 单独控widthstring | number容器宽度不设内容撑开heightstring | number容器高度不设内容撑开paddingPadding | number内边距{ left: 12, right: 12, top: 6, bottom: 6 }backgroundColorstring | Color背景色rgba(255,255,255,0.7)borderRadiusnumber圆角16alignItemsVerticalAlign 枚举子元素垂直对齐CenterjustifyContentFlexAlign 枚举子元素水平排列未用自然排2.2 Row vs Column 主轴容器主轴justifyContent控alignItems控Row水平 ↔水平排列垂直对齐Column垂直 ↓垂直排列水平对齐记忆Row的alignItems用VerticalAlignColumn的alignItems用HorizontalAlign——别搞反。三、alignItems 垂直对齐三值VerticalAlign.Top // 顶对齐 VerticalAlign.Center // 居中 VerticalAlign.Bottom // 底对齐3.1 徽章用 Center三段顶部对齐Row() { Text().fontSize(20) Text(最高分: ${this.highScore}).fontSize(14).margin({ left: 6 }) } .alignItems(VerticalAlign.Center)Center让20 字号和文字14 字号垂直居中对齐——视觉基线居中最自然。3.2 三值视觉对比假设 Row 高 40 20 字号文字 14 字号模式文字说明Top顶贴 0顶贴 0都顶对齐但字号不同底部错乱Center居中居中基线居中最自然Bottom底贴 40底贴 40都底对齐顶部错乱实战经验横排混合字号内容图标 文字默认用Center。Top/Bottom只在三段同字号时用。四、margin 子间距的两种控法4.1 单独 margin本项目写法Row() { Text().fontSize(20) Text(最高分: ${this.highScore}).fontSize(14).margin({ left: 6 }) Text(NEW).fontSize(10).margin({ left: 6 }) }每个子元素margin.left: 6单独控间距。优点可以不均匀——NEW标离文字近6离屏边远无 margin。4.2 Row space 统一间距Row({ space: 6 }) { Text().fontSize(20) Text(最高分: ${this.highScore}).fontSize(14) Text(NEW).fontSize(10) }优点简洁所有子元素均 6vp。缺点必须均匀无法让 NEW 离文字更近。4.3 取舍场景推荐三段间距均匀space: 6间距不均匀margin.left单独控首尾不空中间空space 首尾margin.left: 0五、justifyContent 水平排列实战5.1 自然排默认 StartRow() { Text().fontSize(20) Text(最高分: ${this.highScore}).fontSize(14).margin({ left: 6 }) } // justifyContent 不写默认 Start左贴边徽章用自然排——三段从左贴边依次排。5.2 两端贴边SpaceBetweenHUD 底栏三段得分/预告/控制用SpaceBetweenRow() { Text(得分: ${this.score}).fontSize(16) Column() { /* 预告区 */ } Row() { /* 控制按钮组 */ } } .width(100%) .justifyContent(FlexAlign.SpaceBetween) .alignItems(VerticalAlign.Center)SpaceBetween让首尾贴边、中间均分——经典 HUD 三栏。5.3 居中Center加载页加载图标 文字居中Row() { LoadingProgress().width(24).color(#2ECC71) Text(加载中...).fontSize(14).fontColor(#95A5A6).margin({ left: 8 }) } .width(100%) .justifyContent(FlexAlign.Center) .alignItems(VerticalAlign.Center)5.4 六值视觉示意Row 宽 1003 个子元素各宽 10模式左中右说明Start101010首贴左依次排Center351035居中左右空对称End701010尾贴右依次排SpaceBetween0350首尾贴边中间 35SpaceAround17.517.517.5每元素左右空对称SpaceEvenly17.517.517.5含首尾全均分六、完整代码三种横排徽章对比6.1 最高分徽章本项目Row() { Text().fontSize(20) Text(最高分: ${this.highScore}) .fontSize(14).fontColor(#2C3E50).fontWeight(FontWeight.Bold) .margin({ left: 6 }) if (this.isNewHigh) { Text(NEW) .fontSize(10).fontColor(#FFFFFF).backgroundColor(#E74C3C) .borderRadius(4).padding({ left: 4, right: 4, top: 2, bottom: 2 }) .margin({ left: 6 }) } } .padding({ left: 12, right: 12, top: 6, bottom: 6 }) .backgroundColor(rgba(255,255,255,0.7)) .borderRadius(16) .alignItems(VerticalAlign.Center) .margin({ bottom: 16 })6.2 HUD 底栏三栏SpaceBetweenRow() { Text(得分: ${this.score}).fontSize(16).fontColor(#2C3E50) Column() { Text(下一个).fontSize(12).fontColor(#95A5A6) Text(this.nextCatEmoji).fontSize(24) }.alignItems(HorizontalAlign.Center) Row() { Button(暂停).width(80).height(40).backgroundColor(#95A5A6) Button(重开).width(80).height(40).backgroundColor(#E74C3C).margin({ left: 8 }) } } .width(100%).padding({ left: 16, right: 16 }) .justifyContent(FlexAlign.SpaceBetween) .alignItems(VerticalAlign.Center)6.3 图标按钮组space 统一Row({ space: 8 }) { Button(暂停) { SymbolGlyph($r(sys.symbol.pause)).fontSize(16).fontColor(Color.White) } .width(40).height(40).backgroundColor(#95A5A6).borderRadius(20) Button(重开) { SymbolGlyph($r(sys.arrow.clockwise)).fontSize(16).fontColor(Color.White) } .width(40).height(40).backgroundColor(#E74C3C).borderRadius(20) Button(设置) { SymbolGlyph($r(sys.gear)).fontSize(16).fontColor(Color.White) } .width(40).height(40).backgroundColor(#2C3E50).borderRadius(20) } .alignItems(VerticalAlign.Center)三个圆形图标按钮均 8vp 间距space最简洁。七、调试技巧横排怎么量加临时 border给Row和子元素都加.border({ width: 1, color: Color.Red })看清边界。justifyContent验 width水平排列不生效Row是否设了width没设宽度内容撑开无空可排。alignItems验字号垂直居中错乱多半是子元素字号差异大——Center解或统一字号。真机看徽章预览器渲染接近真机但 Emoji 字形可能差异以真机为准。八、性能与最佳实践Row比Flex高效不需要 flexGrow/shrink 时用Row单 pass 布局性能优。space比多个margin高效均匀间距用space容器一次算。alignItems默认CenterRow 默认就是垂直居中不写也居中但明确写出更可读。borderRadius别超过高度一半徽章高度 padding.topbottom 内容高 ≈ 28圆角 16 没问题超过 14 视觉像气泡。总结本篇我们从最高分徽章切入掌握Row容器的横排套路、justifyContent水平排列、alignItems垂直对齐、space/margin间距控制四大要点并给出了徽章、HUD 三栏、图标按钮组三种横排布局的完整代码。核心要点横排用 Row垂直对齐 Center均匀间距 space不均匀 margin。下一篇我们将继续主菜单拆解Stack叠层容器的状态页面叠层用法。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源「猫猫大作战」项目源码本仓库entry/src/main/ets/pages/Index.ets线性布局 (Row/Column) 官方指南Row API 参考FlexAlign 枚举开源鸿蒙跨平台社区HarmonyOS 开发者官方文档首页系列索引本仓库articles/INDEX.md

相关新闻

Qwen3.6-27B-Uncensored-HauhauCS-Balanced量化模型终极指南:如何在AI模型选择中实现性能与资源的最佳平衡

Qwen3.6-27B-Uncensored-HauhauCS-Balanced量化模型终极指南:如何在AI模型选择中实现性能与资源的最佳平衡

Qwen3.6-27B-Uncensored-HauhauCS-Balanced量化模型终极指南:如何在AI模型选择中实现性能与资源的最佳平衡 【免费下载链接】Qwen3.6-27B-Uncensored-HauhauCS-Balanced 项目地址: https://ai.gitcode.com/hf_mirrors/HauhauCS/Qwen3.6-27B-Uncensored-HauhauCS-…

2026/10/1 21:52:38 阅读更多 →
【JAVA毕设源码分享】基于springboot家教系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot家教系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/24 16:25:20 阅读更多 →
从聊天到项目:解锁Codex AI编程副驾驶的实战全链路指南

从聊天到项目:解锁Codex AI编程副驾驶的实战全链路指南

如果你还在把 Codex 当成一个“更聪明的聊天机器人”来用,那你可能只发挥了它 10% 的潜力。很多开发者第一次接触 Codex 时,都抱着和 ChatGPT 对话的心态,输入一句“帮我写个登录页面”,然后期待一段完整的代码从天而降。结果往往是,要么代码不完整,要么上下文理解有偏差…

2026/10/5 7:17:59 阅读更多 →

最新新闻

配电网动态重构:分布式光伏消纳的关键技术与工程实践

配电网动态重构:分布式光伏消纳的关键技术与工程实践

简介:这是《基于配电网动态重构的分布式光伏消纳策略》学术文献,面向电力系统研究人员、配电网优化与分布式光伏并网方向学习者,聚焦光伏出力间歇性与波动性导致的消纳难题,提出以光伏消纳比最大化和开关切换次数最少化为目标的配…

2026/10/5 13:24:07 阅读更多 →
Linux Apache HTTP Server Directory 指令中 Options 参数有哪些核心选项

Linux Apache HTTP Server Directory 指令中 Options 参数有哪些核心选项

前言<Directory> 段里几乎每个配置模板都出现过 Options Indexes FollowSymLinks 这一行&#xff0c;但真正问「Indexes 到底开的是什么、FollowSymLinks 关掉之后为什么 RewriteRule 会失效、 和 - 前缀到底改了谁」时&#xff0c;能答全的人并不多。这些选项名长得像形…

2026/10/5 13:24:07 阅读更多 →
二项分布与Beta分布的共轭性:从推导到贝叶斯A/B测试实战

二项分布与Beta分布的共轭性:从推导到贝叶斯A/B测试实战

先说一个我实际工作里经常被问到的场景&#xff1a;你在监控一个页面的转化率&#xff0c;某天一共积累了 4320 次点击、成交 86 单&#xff0c;点估计是 86/4320 ≈ 1.99%。但老板问的不是“今天转化率多少”&#xff0c;而是“这个转化率到底靠不靠谱&#xff0c;有没有达到 …

2026/10/5 13:24:07 阅读更多 →
OpenClaw实战:API Key管理与第三方服务深度集成指南

OpenClaw实战:API Key管理与第三方服务深度集成指南

2026年还在手写API调用的同学&#xff0c;大概已经跟不上节奏了。前几天有人在技术群里晒出OpenClaw的配置截图&#xff0c;评论区立刻分成两派&#xff1a;一派问这东西能不能替代商业RPA&#xff0c;另一派直接甩出WorkBuddy的发布时间线&#xff0c;说它八成参考了OpenClaw。…

2026/10/5 13:24:07 阅读更多 →
制造业高端化的关键:垂直赛道定位与品牌聚焦实战解析

制造业高端化的关键:垂直赛道定位与品牌聚焦实战解析

去年在华东一场制造业闭门交流会上&#xff0c;一位做精密零部件的老板当着十几位同行吐槽&#xff1a;他家的产品经过十几道检测&#xff0c;寿命指标和德国同行差不了多少&#xff0c;但客户一听是国产品牌&#xff0c;报价直接砍一半。他说&#xff1a;"技术这件事我可…

2026/10/5 13:24:07 阅读更多 →
WorkBuddy智能体工作台实战:从Skill编排到批量任务自动化

WorkBuddy智能体工作台实战:从Skill编排到批量任务自动化

如果你最近在研究 AI 编程助手和智能体工作台&#xff0c;应该频繁看到一个名字&#xff1a;WorkBuddy。它经常和 CodeBuddy 一起出现&#xff0c;很多人把它当成“全能工作台版”的 CodeBuddy 来用。简单说&#xff0c;WorkBuddy 不是一个只能“聊几句生成代码”的对话工具&am…

2026/10/5 13:23:06 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起&#xff1a;它到底在解决什么问题如果你最近在折腾 AI 编程工具&#xff0c;尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手&#xff0c;那你大概率绕不开一个词——plugins。这个词本身不新鲜&#xff0c;从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →