HarmonyOS开发实战:小分享-最近使用横向列表——三栏均分布局
前言最近使用列表是首页常见的功能模块用于展示用户最近操作过的内容方便快速重复访问。本篇以小分享 App 的 HomePage 最近使用区为例讲解三栏均分布局、文字省略、SpaceBetween分散对齐等核心技巧。详细 API 可参考 HarmonyOS Row 官方文档。一、最近使用完整代码1.1 数据定义private recentItems: ArrayRecentItem [ { title: 生活的美好, image: ️ }, { title: 山川湖海, image: }, { title: 天地有爱, image: } ];1.2 接口定义export interface RecentItem { title: string; // 标题 image: string; // 图片 Emoji }1.3 渲染代码Column({ space: 12 }) { Row() { Text(最近使用) .fontSize(16) .fontWeight(FontWeight.Bold) .fontColor(#1A1A1A) .layoutWeight(1) Text(›) .fontSize(18) .fontColor(#CCCCCC) } .width(100%) .padding({ left: 16, right: 16 }) Row({ space: 12 }) { ForEach(this.recentItems, (item: RecentItem, index: number) { Column() { Column() { Text(item.image) .fontSize(40) } .width(100%) .height(120) .backgroundColor(#F0F0F0) .borderRadius(12) .justifyContent(FlexAlign.Center) .alignItems(HorizontalAlign.Center) Text(item.title) .fontSize(12) .fontColor(#666666) .margin({ top: 8 }) .maxLines(1) .textOverflow({ overflow: TextOverflow.Ellipsis }) } .width(30%) .alignItems(HorizontalAlign.Center) }, (item: RecentItem, index: number) ${item.title}) } .width(100%) .padding({ left: 16, right: 16 }) .justifyContent(FlexAlign.SpaceBetween) }二、三栏均分布局2.1 宽度分配每栏宽度 30%三栏合计 90%剩余 10% 用于 Row 的space: 12Row 总宽 100% ├─ Column.width(30%) → 栏 1 │ space: 12 ├─ Column.width(30%) → 栏 2 │ space: 12 └─ Column.width(30%) → 栏 32.2 宽度分配方案对比方案总宽度间距适用场景30% × 390%10% 空间三栏均分33% × 399%1% 空间紧凑三栏50% × 2100%0 空间两栏均分25% × 4100%0 空间四栏均分2.3 SpaceBetween 分散对齐justifyContent(FlexAlign.SpaceBetween)让三栏在 Row 内均匀分布Row({ space: 12 }) { // 三栏内容 } .justifyContent(FlexAlign.SpaceBetween)三、文字省略处理3.1 完整代码Text(item.title) .fontSize(12) .fontColor(#666666) .margin({ top: 8 }) .maxLines(1) // 最多 1 行 .textOverflow({ overflow: TextOverflow.Ellipsis }) // 溢出省略号3.2 文字溢出处理方案方案代码效果省略号TextOverflow.Ellipsis文字溢出显示…裁剪TextOverflow.Clip直接裁剪多余文字不处理不设置可能会导致布局溢出3.3 多行省略Text(item.content) .maxLines(2) // 最多 2 行 .textOverflow({ overflow: TextOverflow.Ellipsis })四、标题行设计4.1 完整代码Row() { Text(最近使用) .fontSize(16) .fontWeight(FontWeight.Bold) .fontColor(#1A1A1A) .layoutWeight(1) Text(›) .fontSize(18) .fontColor(#CCCCCC) } .width(100%) .padding({ left: 16, right: 16 })4.2 标题行布局layoutWeight(1)让标题文字撑开›箭头符号固定在右侧Row 总宽 100% ├─ Text(最近使用) → layoutWeight(1) 撑开 └─ Text(›) → 右侧固定4.3 箭头符号设计›箭头符号Unicode U203A表示「更多」入口后期可扩展为点击跳转到详情页。五、图片占位区设计5.1 完整代码Column() { Text(item.image) .fontSize(40) } .width(100%) .height(120) .backgroundColor(#F0F0F0) .borderRadius(12) .justifyContent(FlexAlign.Center) .alignItems(HorizontalAlign.Center)5.2 设计要点设计要点如下尺寸100% × 120vp宽高比约 3:4背景色#F0F0F0浅灰作为占位色圆角12vp与卡片风格一致居中justifyContent CenteralignItems Center六、完整卡片布局6.1 卡片结构Column (30% 宽度) ├─ Column (图片占位区 100% × 120) │ └─ Text(Emoji) 40px └─ Text(标题) 12px 灰色6.2 间距控制间距值作用标题行 space12标题行与列表间距Row space12三栏之间间距图片与标题 margin8图片与文字间距6.3 交互反馈未来可添加点击跳转Column() .onClick(() { router.pushUrl({ url: pages/PreviewPage, params: { title: item.title } }) })七、扩展思考7.1 动态数据当前数据是硬编码的后续可从本地存储读取State recentItems: ArrayRecentItem []; aboutToAppear(): void { this.recentItems this.getRecentItems(); } private getRecentItems(): ArrayRecentItem { // 从 AppStorage 或 Preferences 读取 return JSON.parse(AppStorage.get(recent_items) || []); }7.2 横向滚动如果最近使用项超过 3 个可以改为横向 ScrollScroll() { Row({ space: 12 }) { ForEach(this.recentItems, (item, index) { // 每项 width(120) 固定宽度 }, (item) item.title) } } .scrollable(ScrollDirection.Horizontal)7.3 空状态处理当没有最近使用记录时显示空状态提示if (this.recentItems.length 0) { Text(暂无最近使用记录) .fontSize(14) .fontColor(#999999) .padding({ top: 40 }) }八、本篇核心知识点8.1 三栏布局核心要点三栏布局核心要点总结如下width(30%)每栏宽度justifyContent(SpaceBetween)分散对齐Row({ space: 12 })控制间距三栏合计 90%剩余用于间距8.2 文字省略处理文字省略处理要点总结如下maxLines(1)限制行数textOverflow({ overflow: TextOverflow.Ellipsis })省略号8.3 实战开发要点实战开发中需要重点关注以下几个要点百分比宽度确保响应式文字溢出必须处理避免布局错乱标题行留「更多」入口后续可扩展为横向滚动总结本文详细讲解了最近使用横向列表的三栏均分布局、文字省略处理、标题行设计、图片占位区等核心技巧。下一篇我们将看 BottomTabBar 自定义底部导航栏组件抽取。附录完整实现细节1. 核心 API 参考API作用说明本文涉及的核心 API功能实现参见华为官方文档2. 完整代码示例// 核心功能代码 // 详见正文中的完整实现3. 常见问题排查问题原因解决方案编译错误import 路径错误检查路径和 API 版本运行时异常参数不合法使用 try/catch 捕获性能问题主线程耗时操作使用异步 API4. 最佳实践错误处理完善使用 try/catch 包裹资源及时释放避免内存泄漏异步操作使用 async/await权限配置完整按需申请5. 完整代码文件索引文件路径说明本文涉及的代码文件见正文6. 实现要点总结核心实现要点API 的正确使用方法和参数说明完整的代码实现流程常见问题的排查方案性能优化和安全建议7. 总结本文详细讲解了小分享 App 中对应功能的完整实现。通过本文的学习读者可以掌握 HarmonyOS 开发的核心 API 使用方法和最佳实践。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力

相关新闻

制造业订单处理自动化:RPA与AI融合实践

制造业订单处理自动化:RPA与AI融合实践

1. 项目背景与核心挑战去年接手了一个制造业客户的订单处理流程自动化改造项目,客户每天需要处理超过2000份来自不同渠道的采购订单。传统人工操作模式下,平均每单处理耗时8分钟,且错误率高达3%。更棘手的是,这些订单涉及ERP、CRM…

2026/8/22 21:36:30 阅读更多 →
AI模型随机数生成偏好:套壳API检测与行为指纹技术解析

AI模型随机数生成偏好:套壳API检测与行为指纹技术解析

这次我们来看一个很有意思的研究发现:布拉格经济大学的研究团队发现,AI模型在生成随机数时存在特定的"偏好",这种偏好可以作为一种"行为指纹"来检测套壳API。简单来说,很多声称自研的AI服务可能只是对现有大模…

2026/8/22 21:40:49 阅读更多 →
LLM应用评估框架:从质量监控到生产部署的完整指南

LLM应用评估框架:从质量监控到生产部署的完整指南

最近在 Hacker News 上看到一个很有意思的讨论:"Ask HN: If youre running LLM bots on HN, can you at least report results?" 这个话题之所以引发关注,是因为越来越多的人开始用大语言模型(LLM)自动生成内容、回答问…

2026/8/22 17:37:46 阅读更多 →

最新新闻

长篇故事拆分短剧:从原始文本到可生产分集脚本

长篇故事拆分短剧:从原始文本到可生产分集脚本

我是四人改编工作室,主要做网文向仿真人短剧与漫剧改编,两人负责文本拆解与剧本润色,一人负责角色资产梳理,我负责把分集脚本对接故事板与画面生产。项目经常遇到长篇原始文本信息量过载,AI拆分出来的集数主线散乱、钩…

2026/8/24 4:58:37 阅读更多 →
KKCE IP查询:一篇用全

KKCE IP查询:一篇用全

一、同一个功能&#xff0c;四种人的四种用法 IP查询大概是网络工具里"看起来最简单、用起来最分化"的一个&#xff1a;有人用它查一下归属地就关掉了&#xff0c;有人却靠它盘网段、验调度、追可疑来源。差别不在工具&#xff0c;在于知不知道它还能干什么。 <…

2026/8/24 4:58:37 阅读更多 →
KKCE IP查询功能手册

KKCE IP查询功能手册

一、IP查询&#xff1a;使用频率最高却最容易被小看的功能 日志里出现一个陌生 IP&#xff0c;它是什么来头&#xff1f;域名解析出的这个 IP&#xff0c;归属和运营商对不对&#xff1f;服务器迁移后&#xff0c;各地解析到的新 IP 有没有问题&#xff1f;一段网段里到底有多…

2026/8/24 4:58:37 阅读更多 →
GLM实战指南:Logistic与泊松回归从原理到落地避坑

GLM实战指南:Logistic与泊松回归从原理到落地避坑

这类工具最值得先看的不是功能列表&#xff0c;而是能不能在普通环境里稳定跑起来。GLM&#xff08;广义线性模型&#xff09;是数据分析、机器学习乃至很多AI应用里绕不开的基础&#xff0c;但很多人一上来就卡在“Logistic回归和泊松回归到底怎么选、怎么用、怎么调”上。这篇…

2026/8/24 4:58:37 阅读更多 →
机器人摄影师如何实现展会自动化拍照服务?全流程技术拆解

机器人摄影师如何实现展会自动化拍照服务?全流程技术拆解

1. 先搞清楚这个“机器人摄影师”到底解决了什么实际问题看到“机器人拍照”这个标题&#xff0c;很多人第一反应可能是“噱头大于实用”。但如果你负责过展会、大型活动或者门店的现场互动环节&#xff0c;就会立刻明白这背后的痛点&#xff1a;如何在人流密集、需求碎片化的场…

2026/8/24 4:58:37 阅读更多 →
企业AI安全治理落地实战:公网AI、影子AI、Agent全流程管控方案

企业AI安全治理落地实战:公网AI、影子AI、Agent全流程管控方案

2026年&#xff0c;海外多家头部AI企业的大模型接连出现失控事故&#xff0c;AI自主探测、入侵外部系统的案例被公开披露。这件事打破了行业内普遍存在的侥幸心理&#xff1a;AI的风险早已不是停留在文本幻觉、话术不当的浅层问题&#xff0c;具备工具调用、系统操作、权限访问…

2026/8/24 4:57:37 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力&#xff1b;确需渲染 HTML 时&#xff0c;先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述&#xff1a;Windows登录密码的“黑匣子”每次你按下CtrlAltDel&#xff0c;输入密码&#xff0c;然后看到那个熟悉的桌面&#xff0c;这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者&#xff0c;我经常被问到&#xff1a;“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述&#xff1a;AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时&#xff0c;遇到一个典型案例&#xff1a;候选人在视频面试中无意提到竞争对手产品名称&#xff0c;系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态&#xff0c;宏观上观察到的光是由无数个微观的光量子组成的&#xff0c;每个光子在产生的瞬间&#xff0c;其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前&#xff0c;在微观层面&#xff0c;每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”&#xff0c;而是SIP会话的动态重定向你有没有遇到过这样的场景&#xff1a;客服坐席A正在和客户通电话&#xff0c;突然需要把这通对话无缝转给专家坐席B&#xff0c;客户完全感知不到中间的断连——既没听到忙音&#xff0c;也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack&#xff1f;如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法&#xff0c;那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →