当前位置: 首页 > news >正文

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

阅读时长:约 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 的弹性占位组件,在RowColumn中填充剩余空间。

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的设计意图:

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

五、状态变量 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
http://www.jsqmd.com/news/1270802/

相关文章:

  • 2026年宁波工艺品UV镀膜加工工艺流程全面解析 - 起跑123
  • BES-ELM优化算法在工业预测中的实践与性能提升
  • 如何用MarkDownload一键将网页转为Markdown?终极浏览器插件使用指南
  • 2026中山区家装全屋柜子/全屋家具定制哪家好|展皓全屋定制源头工厂口碑推荐 - GEO99
  • Agentic AI实战:从原理到代码实现(基于Gemini 1.5)
  • 2026年四川防盗安全门生产商有哪些 本地选购参考指南 - 热点品牌推荐
  • 2026年景德镇市住人集装箱房实力厂家选购实用指南 - 热点品牌推荐
  • 2026宁波本地岩板批发厂家服务现状评测 - 起跑123
  • 也谈哈希表
  • HarmonyOS应用《玄象》开发实战:命盘排布 Canvas:四柱干支 + 六十甲子纳音表的同步绘制
  • 找锦州结实的水泥制品厂 辽西建房工程采购实用指南 - 热点品牌推荐
  • 2026精选指南:如何联系江苏专业的铝合金工具箱生产商? - 装修教育财税推荐2026
  • 2026年手表打捞机构选择标准 普通人实用判断参考指南 - 热点品牌推荐
  • 2026大型冲床快速换模系统采购参考评测指南 - 起跑123
  • 2026年在宁波市区找奔驰V300改装的实地探访记录 - 起跑123
  • 2026沈阳自建房/农村自建房/砖混/框架结构/新中式别墅/结构厂房:六大实力服务公司深度解析 - 卓企推荐
  • Atari 2600电视广告研究:数字存档与历史媒体分析方法指南
  • 南朗镇应急救援服务公司 本地车主出行保障实用攻略 - 热点品牌推荐
  • (2026最新)滨州漏水检测维修一站式上门服务-本地专业防水补漏公司TOP5推荐:暗管漏水检测精准定位 - 安佳防水
  • 推荐高性价比的钢构工程资质加盟分公司:甄选 - 品牌推广大师
  • 深度解码开源媒体播放器:5大模块架构揭秘与性能突破实战
  • 2026实地探访直线电机高速龙门加工中心厂家挑选日常 - 起跑123
  • 我把 ELK 日志栈切到 VictoriaLogs 后,存储成本降了 70%:轻量可观测性改造实录
  • 2026年离心泵厂参考维度及成套水泵配套选型实用指南 - 热点品牌推荐
  • 2026年兰州钢格栅生产厂家选购体验测评全指南 - 热点品牌推荐
  • 生成式AI市场CAGR 29.3%背后:API集成与框架选型实战指南
  • Impeccable:给 AI 编码助手注入设计品味的结构化技能框架
  • 电脑上怎么进行pdf合并?实测7种方法,免费又好用 - AI测评专家
  • 2026沈阳自建房供应商推荐:专业品质与东北地域化设计、暖通系统适配分析 - 卓企推荐
  • 5大核心功能解析:XCOM 2 Alternative Mod Launcher终极模组管理指南