尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

HarmonyOS应用《玄象》开发实战:HomePage 顶部标题栏的 Row + Blank 三段式布局

HarmonyOS应用《玄象》开发实战:HomePage 顶部标题栏的 Row + Blank 三段式布局
📅 发布时间:2026/7/27 1:03:16

阅读时长:约 19 分钟 | 难度:★★★★☆ | 篇章:第 3 篇 · 首页与功能导航
对应源码:entry/src/main/ets/pages/HomePage.ets

前言

首页顶部标题栏是用户进入应用后最先看到的功能性区域。玄象项目首页采用Row+Blank三段式布局:左侧"☰"菜单按钮、中间"玄象"标题与今日干支、右侧"🔔"通知按钮。这种布局结构在 ArkUI 中极为常见,掌握Row横向布局、Blank弹性占位、Column嵌套居中三大技巧,您就能为任何 HarmonyOS 应用打造标准化的顶部标题栏。

提示:三段式布局是移动端顶部导航的"事实标准"——左侧返回/菜单、中间标题、右侧操作按钮。玄象项目用最简代码实现了这一标准布局。

一、HomePage 完整源码概览

1.1 顶部标题栏源码

build(){Column(){// 顶部标题栏Row(){Text('☰').fontSize(24).fontColor(Colors.PRIMARY_GOLD)Blank()Column({space:4}){Text('玄象').fontSize(28).fontWeight(FontWeight.Bold).fontColor(Colors.PRIMARY_GOLD)Text(this.todayGanZhi).fontSize(14).fontColor(Colors.TEXT_SECONDARY)}Blank()Text('🔔').fontSize(24).fontColor(Colors.PRIMARY_GOLD)}.width('100%').padding({left:16,right:16,top:50,bottom:12})}}

1.2 三段式布局结构

┌──────────────────────────────────────────────┐ │ ☰ 玄象 🔔 │ │ 甲辰年│肖龙 │ └──────────────────────────────────────────────┘ ↑ ↑ ↑ 左侧菜单 中间标题 右侧通知
段位组件内容
左侧Text“☰” 菜单图标
中间Column“玄象” + 今日干支
右侧Text“🔔” 通知图标

二、Row 横向布局容器

2.1 Row 基本用法

Row(){Text('左')Text('中')Text('右')}.width('100%')

Row容器让子元素按从左到右的顺序横向排列。

2.2 Row 关键属性

属性类型含义玄象项目值
widthLength容器宽度'100%'
heightLength容器高度默认(包裹内容)
paddingPadding内边距{ left: 16, right: 16, top: 50, bottom: 12 }
justifyContentFlexAlign主轴对齐-
alignItemsVerticalAlign交叉轴对齐-

2.3 padding 内边距详解

玄象项目顶部标题栏的padding:

.padding({left:16,right:16,top:50,bottom:12})
方向值含义
left16左侧 16vp 内边距
right16右侧 16vp 内边距
top50顶部 50vp 内边距
bottom12底部 12vp 内边距

提示:玄象项目top: 50是为了避开状态栏(手机顶部约 24-50vp 是状态栏区域)。在生产环境,应通过window.getWindowAvoidArea动态获取安全区域。

三、Blank 弹性占位

3.1 Blank 的作用

Blank是 ArkUI 的弹性占位组件,在Row或Column中填充剩余空间。

Row(){Text('左')Blank()// ← 弹性占位Text('右')}

Blank让"左"贴左、"右"贴右,中间被Blank撑开。

3.2 玄象项目双 Blank 布局

Row(){Text('☰')// 左侧Blank()// 弹性占位 1Column(){...}// 中间Blank()// 弹性占位 2Text('🔔')// 右侧}

两个Blank平均分配剩余空间,让中间Column居中。

3.3 Blank vs justifyContent

实现"三段均分"的两种方式:

方式 1:Blank(玄象项目方案)

Row(){Text('左')Blank()Text('中')Blank()Text('右')}

方式 2:justifyContent

Row(){Text('左')Text('中')Text('右')}.justifyContent(FlexAlign.SpaceEvenly)

玄象项目选择Blank的原因:

  • 中间Column内容垂直,需独立居中。
  • Blank方案对中间内容的水平居中更精确。

提示:若中间内容是简单Text,两种方案效果一致。若中间是Column多行内容,Blank方案更可控。

四、Column 嵌套居中

4.1 中间 Column 结构

Column({space:4}){Text('玄象').fontSize(28).fontWeight(FontWeight.Bold).fontColor(Colors.PRIMARY_GOLD)Text(this.todayGanZhi).fontSize(14).fontColor(Colors.TEXT_SECONDARY)}

4.2 Column 关键参数

参数类型含义玄象项目值
spaceLength子元素间距4

Column({ space: 4 })让主标题"玄象"与副标题"甲辰年│肖龙"间距为 4vp。

4.3 嵌套 Column 的设计意图

Row ├── Text "☰" ├── Blank ├── Column ← 嵌套 Column │ ├── Text "玄象" │ └── Text "甲辰年│肖龙" ├── Blank └── Text "🔔"

玄象项目使用嵌套Column的设计意图:

  • 主标题与副标题垂直堆叠。
  • 副标题字号更小,颜色更淡,形成视觉层次。
  • 整个Column在Row中水平居中。

五、状态变量 todayGanZhi

5.1 状态定义

@StatetodayGanZhi:string='';

玄象项目用todayGanZhi存储今日干支字符串。

5.2 aboutToAppear 中初始化

aboutToAppear():void{this.todayGanZhi=LunarCalendar.getTodayGanZhi();// ...}

玄象项目在aboutToAppear中调用LunarCalendar.getTodayGanZhi()初始化今日干支。

5.3 数据流

aboutToAppear ↓ LunarCalendar.getTodayGanZhi() ↓ this.todayGanZhi = '甲辰年│肖龙' ↓ @State 变化触发 build 重新渲染 ↓ Text(this.todayGanZhi) 显示 "甲辰年│肖龙"

提示:玄象项目首页标题栏的"今日干支"是首页与历法模块的视觉纽带。用户看到"甲辰年"会自然联想到干支推算功能。

六、emoji 图标的兼容性

6.1 玄象项目使用的 emoji

Text('☰')// 菜单(八卦中的乾卦符号)Text('🔔')// 通知

玄象项目顶部标题栏使用两个 emoji:

  • “☰”:八卦中的乾卦符号,象征天
  • “🔔”:通知铃铛

6.2 emoji 字体兼容性

emoji 的显示依赖系统字体:

平台emoji 字体
HarmonyOSNoto Color Emoji
iOSApple Color Emoji
AndroidNoto Color Emoji

6.3 emoji 渲染优化

emoji 是彩色字体,渲染开销高于普通文本。玄象项目仅在标题栏使用 emoji,数量少,性能无忧。

提示:玄象项目首页九宫格的"星宿""乐律"图标位置为空字符串,可能是设计稿中尚未确定的图标占位。

七、字体属性详解

7.1 主标题字体属性

Text('玄象').fontSize(28).fontWeight(FontWeight.Bold).fontColor(Colors.PRIMARY_GOLD)
属性值含义
fontSize28字号 28vp
fontWeightFontWeight.Bold加粗
fontColorColors.PRIMARY_GOLD金色

7.2 副标题字体属性

Text(this.todayGanZhi).fontSize(14).fontColor(Colors.TEXT_SECONDARY)
属性值含义
fontSize14字号 14vp
fontColorColors.TEXT_SECONDARY次要文字色

7.3 视觉层次

玄象项目顶部标题栏的视觉层次:

层级元素字号颜色
主“玄象”28金色
次“甲辰年│肖龙”14灰色
辅“☰” / “🔔”24金色

八、顶部标题栏的扩展方向

8.1 添加搜索框

Row(){Text('☰')TextInput({placeholder:'搜索星宿/卦象'}).layoutWeight(1).backgroundColor(Colors.BG_CARD).borderRadius(20)Text('🔔')}

8.2 添加返回按钮

Row(){Text('←').onClick(()=>router.back())Blank()Text('星宿详情')Blank()Text('⋯')}

8.3 添加下拉菜单

Row(){Text('☰').onClick(()=>this.showSideMenu())Blank()Text('玄象')Blank()Text('🔔').onClick(()=>this.showNotifications())}

九、玄象项目标题栏设计原则

9.1 简约原则

玄象项目顶部标题栏仅 3 个元素(菜单 + 标题 + 通知),符合"少即是多"的设计哲学。

9.2 对称原则

[☰] [Blank] [Column] [Blank] [🔔] 左 占位 中 占位 右

左右两侧元素等宽(24vp 字号),视觉对称。

9.3 一致原则

玄象项目所有页面的标题栏遵循统一规范:

  • 高度 50vp(顶部安全距离)
  • 字号 28vp(主标题)
  • 颜色Colors.PRIMARY_GOLD

总结

本篇以玄象项目首页顶部标题栏为蓝本,深入剖析了 ArkUIRow+Blank三段式布局:从Row横向布局、Blank弹性占位、Column嵌套居中,到padding内边距、状态变量绑定、emoji 兼容性、字体属性详解。掌握这套三段式布局方法论,您就能为任何 HarmonyOS 应用打造标准化的顶部标题栏。

下一篇:《22 · "今日天地"卡片:border + shadow + borderRadius 的金边卡片范式》,将带您深入玄象项目首页"今日天地"卡片的实现细节。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

  • HarmonyOS 官方文档:Row 组件
  • HarmonyOS 官方文档:Blank 组件
  • HarmonyOS 官方文档:Column 组件
  • HarmonyOS 官方文档:Padding 类型
  • 开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

相关新闻

  • 2026年热泵散热铜管厂家推荐 选高品质稳定供应商少走弯路 - 热点品牌推荐
  • [论文学习]ToolEmu:用语言模型模拟沙盒识别语言模型智能体的风险
  • 从一个产品到一条出海路径:CBIC四地中心面向制造企业开展联合服务

最新新闻

  • 电商客服机器人进化:从规则维护到自主学习的技术突破
  • 临澧不错的宅基地建房实体公司:优选 - 品牌推广大师
  • WGAN-GP在光伏发电场景生成中的应用与实践
  • 现代C++高性能编程:从内存管理到编译优化的核心实践
  • 2026 年现阶段桂林有实力的31CrMoV9模具氮化圆棒供应商哪家靠谱,揭秘:这个小零件如何让你的模具效率翻倍?-亚航圆钢 - 行业推荐【认证官】
  • C++ STL中std::greater<T>实现降序排序的原理与实践

日新闻

  • OpenClaw开源智能体网关:AI助手与即时通讯的完美融合
  • 写一个简单的sh脚本
  • 2026年 西安缝隙天线厂家:5G通信与车载天线专业定制供应商深度分析 - 卓企推荐

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号