登录社区云,与社区用户共同成长
邀请您加入社区
一个 HarmonyOS 应用页面增加到十几个之后,视觉问题往往不是“某个颜色不好看”,而是同一种语义在不同页面被写成不同值:标题有时 18vp、有时 20vp;卡片圆角一会儿 12vp、一会儿 18vp;成功状态和主按钮都用绿色,却没有区分品牌色与语义色;暗色模式下某些页面自动变暗,另一些页面仍固定白底。这样的应用单页看似正常,连续使用时却会明显割裂。 本文基于句匠项目 D:\huawei\on
HarmonyOS 一套代码运行在手机、折叠屏、平板和 PC/2in1 上,真正困难的不是把某个卡片宽度改成百分比,而是建立一条稳定的窗口响应链路:窗口宽度变化后,应用要重新判断断点;断点要进入共享状态;页面还要结合自己真正拿到的内容区宽度,决定继续使用单列、切换多列,或者调整主次内容关系。状态栏、底部手势区和可滚动区域也必须一起参与计算,否则“大屏能显示”并不等于“大屏可用”。 本文基于句匠项目
基于口算王真实 HarmonyOS ArkTS 源码,拆解 MediaQuery 断点、局部测宽、网格与双栏布局及多窗口验证矩阵。
基于口算王真实 HarmonyOS ArkTS 源码,梳理锁定浅色、语义令牌、交互状态和资源化双主题的可验证迁移路线。
分析拒绝、撤销、全部稍后处理和关闭建议开关的当前页面级实现,说明为何非破坏性设计安全,也为何跨重启持久化尚未完成。
动态背景越漂亮,越容易把文字、按钮和状态提示吃掉。可读性要比视觉效果更早校验。 这篇用两个可复现场景说明边界、代码封装和验证方式。
3DGS 预览内存保护 要先把版本边界、失败路径和验证方式讲清楚。写代码时把判断收口成可复用模块,页面只接收明确结果,这样更容易排查和维护。
3DGS 采集失败经常不是建模算法问题,而是采集阶段的光照、轨迹和相机姿态一开始就不稳定。 这篇用两个可复现场景说明边界、代码封装和验证方式。
鸿蒙电脑窗口尺寸记忆 要先把版本边界、失败路径和验证方式讲清楚。写代码时把判断收口成可复用模块,页面只接收明确结果,这样更容易排查和维护。
互动卡片点击幂等 要先把版本边界、失败路径和验证方式讲清楚。写代码时把判断收口成可复用模块,页面只接收明确结果,这样更容易排查和维护。
从原图、识别文本、编辑稿和来源证据四类信息分析 P06 复核体验,指出重置语义、长文本、旋转与人工确认需要怎样共同降低误保存风险。
拆解 P05 扫描页到 P06 复核页之间的图片 URI、识别文本、来源、时间与方向状态流,并指出演示记录覆盖和批量输入尚未闭环的边界。
App 17 首页解析完毕。沉浸式红色 HeroCard + 可点击周图 + 横向分类 + 标签+进度条项目卡是四大亮点,配合红色志愿服务调性。与 App 13 的"主题复刻"展示了一个重要方法论:同一套 UI 框架,换主题色 + 换文案 + 换数据 = 完全不同的产品。
维度App 13 歌单记录App 17 志愿记录主题色紫 #8B5CF6红 #EF4444Tab 状态全部/进行中/已完成全部/进行中/已完成统计14/3/2(彩)28/3/25(彩)记录5 条(项目一~五)5 条(项目一~五,完全同构状态操作详情+更多详情+更多进度条进行中显进行中显状态色warn/okwarn/ok(同款)App 17 与 App 13 几乎 100% 同构。
App 17 活动创建页解析完毕。与 App 13 的"模板换肤"关系一套 UI 框架 + 一套 Theme.ets 配色 = 任意主题的应用。"红色志愿"主题色让 6 个表单组件焕发公益热情——C.primary红色在按钮/选中态/进度条/链接文字上反复出现,让"志愿"主题深入骨髓。"表单校验"和"Toggle 持久化"是 demo 到产品的关键差距——读者在抄这个模板时记得补齐。
回顾系列 5 个"个人中心"(App 13/14/15/16/17),6 个 @Builder 块完全同源维度App 13App 14App 15App 16App 17主题色紫绿绿玫红红用户小明张运动李环保王积分小明等级Lv.4Lv.5Lv.6Lv.7Lv.4经验74%64%62%57%74%签到伪+10+5+20伪统计通用运动环保商城通用成就6 通用6 运动6 环保6 商城6 通用菜单5666
App 16「校园积分商城」首页(HomeTab),主题色#F43F5E玫瑰红,4 个 Tab 分别为首页(🛍️)、商品(🎁)、兑换(🔄)、我的(👤)。首页采用固定 Header + 玫瑰红渐变 HeroCard(限时抽奖 + 3 栏积分统计 + 搜索框)+ 快捷功能入口(实物/虚拟/秒杀/抽奖)+ 本周积分获取条形图 + 5 个热门商品卡片()+ 兑换排行榜。本篇基于(约 333 行)逐
App 16「校园积分商城」我的 Tab(ProfileTab),是个人中心页。整页用渐变用户卡片(王积分 + Lv.7 + 2860/5000 经验条 +本篇基于(约 312 行)逐段拆解,附 4 张实机截图。
App 16「校园积分商城」商品 Tab(Func1Tab),是——渐变兑换预览卡()+ 6 商品 3 列 Grid(单选高亮)+ 数量加减器(1-10)+ 地址单选(宿舍/教学楼/自取,含默认标识)+ 收件信息表单 + 确认兑换按钮(本篇基于(约 268 行)逐段拆解,附 4 张实机截图。
维度App 14 运动预约首页App 15 垃圾分类首页主题色绿 #16A34A绿 #22C55EHero 活动校运动会报名本月减碳种树快捷入口4 个运动(同色)4 个分类(四色)主列表场地(星级+进度+预约)指南(星级+掌握度+学习/测试)排行榜场地预约排行垃圾识别排行特色机制预约进度条四色编码 + 学习测试闭环同一套"内容流首页"模板,第三次复用(App 13 音乐/14 运动/15 环保),
维度App 14 预约App 15 分类App 16 兑换Tab待确认/已完成/已取消已分类/待处理/错误待发货/已发货/已完成特色模块无占比进度条消耗趋势图记录字段场地+时间分类+数量数量+积分+地址状态1操作取消/详情✓正确取消/改址状态2操作再次预约立即分类查看物流状态3操作无重新分类(红)再次兑换"记录列表模板"第 3 次复用(App 14/15/16),每次的差异化:App 15 加"占
SearchCard(渐变搜索 + 拍照/语音入口)+CategorySelector(四色分类 2 列 Grid)+PreviewCard(结果预览联动)+QuickTemplateRow(常见垃圾 3 列 Grid)+FormCard(备注 + 来源)+SubmitBtn(分类校验提交)核心可复用点doSearch()搜索模式(空输入拦截 → 遍历匹配 → 命中联动 → 未命中降级)名称→id
维度App 14 运动我的App 15 环保我的布局6 块同构6 块同构签到+10 积分+5 积分成就运动 6 徽章环保 6 徽章菜单6 项6 项(数字3/NEW)周图运动时长 7.5h分类次数 47 次About运动预约 v1.0.0垃圾分类 v1.0.0两页 95% 代码相同,差异只在数据一个"绿色个人中心"模板,换数据源即可生成任意主题的个人页。
App 15「智能垃圾分类」分类 Tab(Func2Tab),是分类历史记录页。整页用 Header + 4 个胶囊筛选 Tab(全部/已分类/待处理/错误分类)+ 3 栏统计概览 +(可回收 30% 蓝/厨余 48% 绿/有害 12% 红/其他 10% 灰)+ 6 条记录时间线(:待处理→立即分类、错误分类→重新分类、已分类→✓ 已正确分类)组成。本篇基于(约 248 行)逐段拆解,附 4 张实
11 校园快递(campus-express)第三个 Tab 是取件记录页,对应源码(共 208 行)。它是用户查看"我的快递都到哪了、该去哪取"的流水账,橙色主题#EA580C。本文逐行拆解三大模块,重点讲解"如何用一条竖线 + 圆形节点把一组离散记录串成时间轴",以及"状态分类标签如何驱动列表筛选"。取件页在三个内容 Tab 里最"重数据":它不像首页那样铺品牌、也不像寄件页那样收输入,而是把
固定 Header(品牌区:标题 + Slogan)Scroll(HeroCard(活动 Banner + 3 栏统计 + 搜索框)+QuickActionRow(4 个圆形入口)+WeeklyChart(趋势条形图 + 平均值)+SectionTitle('运动场地') + VenueList(5 个场地卡片)+SectionTitle('热门排行') + RankList(3 条排行)这套骨架
Scroll(UserCard(渐变 + 头像/姓名/Lv + 经验条 + 签到交互)+StatRow(4 栏统计 + 负边距悬浮)+AchievementWall(3 列 Grid 成就墙)+WeeklyChart(7 天条形图)+MenuList(6 项菜单 + 数字/NEW 角标)+AboutInfo(版本 + 技术栈 + 版权)核心可复用点可交互签到if (!防重复)3 列 Grid 成就
App 13「音乐歌单」首页(HomeTab),主题色#8B5CF6紫色,4 个 Tab 分别为首页(🎧)、歌曲(🎵)、歌单(📋)、我的(👤)。首页采用沉浸式渐变 HeroCard + 三栏数字统计 + 快捷功能入口 + 本周数据条形图(点击切换高亮)+ 横向分类筛选 + 推荐列表(带 HOT/NEW/精选标签和进度条)。本篇基于源码(约 194 行)逐段拆解,附 4 张实机截图。
App 13「音乐歌单」我的 Tab(ProfileTab),是个人中心页。整页用渐变用户卡片(Lv.4 等级 + 74% 经验条 + 签到/数据报告)+ 4 栏彩色统计 + 本周使用条形图(周六高亮)+ 6 徽章成就墙(4 解锁 2 未解锁)+ 5 项菜单(带 NEW 角标)+ About 信息组成,是 ArkUI "个人中心"页的完整范本。本篇基于(约 225 行)逐段拆解,附 4 张实机截图
把状态栏文字色设成深色#1C2333,而首页从上到下是"白 Header → 玫红 HeroCard → 白卡片流"的交替底色。状态栏文字位于 Header 白色区域上方(Header 的safeToppadding 把标题推到状态栏下方),深色文字在白色背景上清晰可见;HeroCard 的玫红渐变则因safeTop补偿而与状态栏文字互不重叠。这种"状态栏文字统一深色 + 顶部用白色 Header
12 ACG 社区(acg-community)第三个 Tab 是"作品",对应源码(共 207 行),页面标题「我的动态」。它是用户回溯自己在社区里一切行为的流水账,玫红主题#DB2777。本文逐行拆解三大模块,重点讲解""的多状态着色体系,以及"个人动态时间轴"与"物流时间轴"的本质差异。如果说首页是"看别人的内容",那"我的动态"就是"看自己的足迹"。与 11 号快递的"取件记录"相比,这一
首页数据量不小,作者把零散字段收敛成 6 个interface,这是 ArkTS 声明式开发中非常值得借鉴的做法。id: number;id: number;Express描述一条快递动态,字段覆盖了"谁发的、什么单号、什么公司、什么时间、什么状态、用户打几星、运输进度多少"——一个列表项要呈现的所有维度,一次性建模干净。StatItem用三件套概括了 HeroCard 里的三组统计,color字
模块间循环依赖可能导致应用运行时模块依赖的变量未初始化.......
ArkUI
——ArkUI
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net