HarmonyOS应用开发实战:猫猫大作战-Text 组件的多行排版能力
前言上一篇我们用Text组件把「猫猫大作战」主菜单的 Emoji 主标题 副标题三行渲染完成。但实战中副标题往往不是一句话能写完的——可能是多行规则说明、可能是带省略号溢出的长描述、可能是多段不同样式的混排。本篇继续以「猫猫大作战」主菜单的规则说明面板为锚点把Text的多行排版能力一口气讲透。读完本篇你将能独立写出自动换行的规则说明、溢出省略的长描述、居中对齐的多行文本并为后续第 4 篇的 Column 卡片容器打好基础。提示本系列不讲 ArkTS 基础语法与环境搭建假设你已用 DevEco Studio 6.1.1 Release 新建好工程并跟完第 1 篇。一、场景拆解规则说明面板到底要排版什么打开entry/src/main/ets/pages/Index.ets的MainMenuView找到「游戏规则」面板// 来源entry/src/main/ets/pages/Index.ets MainMenuView() Column() { Text(游戏规则) .fontSize(14) .fontWeight(FontWeight.Bold) .fontColor(#2C3E50) .margin({ bottom: 8 }) Text(• 点击列投放猫咪) .fontSize(13) .fontColor(#7F8C8D) .margin({ bottom: 4 }) Text(• 相邻同级猫咪自动合并升级) .fontSize(13) .fontColor(#7F8C8D) .margin({ bottom: 4 }) Text(• 连续合并触发连击加分) .fontSize(13) .fontColor(#7F8C8D) .margin({ bottom: 4 }) Text(• 猫咪堆到顶部则游戏结束) .fontSize(13) .fontColor(#7F8C8D) } .width(80%) .padding(16) .backgroundColor(rgba(255,255,255,0.7)) .borderRadius(12) .alignItems(HorizontalAlign.Start)这个面板由 5 段Text堆出来1 个粗体小标题 4 条规则说明每条规则以•引导。视觉上规则之间间距 4vp标题与第一条规则间距 8vp又是「近距分组」的排版思路。但实战中规则说明可能会变长比如改成一段连贯的话「点击列投放猫咪相邻同级猫咪自动合并升级连续合并触发连击加分猫咪堆到顶部则游戏结束」。这就需要Text的多行排版能力。二、Text 多行排版核心属性速览属性类型作用默认值maxLinesnumber最大行数溢出部分按textOverflow处理不限制textOverflow{ overflow: TextOverflow }溢出样式None/Clip/Ellipsis/MARQUEENonetextAlignTextAlign 枚举多行文本水平对齐StartlineHeightstring | number行高影响多行间距字号自动倍数textCaseTextCase 枚举大小写强制转换NormalwordBreakWordBreak 枚举换行规则中文断词BREAK_WORD2.1 TextAlign 三值TextAlign.Start // 左对齐默认 TextAlign.Center // 居中 TextAlign.End // 右对齐主菜单整体用Column.alignItems(HorizontalAlign.Center)居中所有子元素但规则面板用HorizontalAlign.Start左对齐——因为规则是阅读型内容左对齐扫读效率最高。2.2 TextOverflow 四值TextOverflow.None // 不裁剪超出就超出 TextOverflow.Clip // 直接裁掉超出部分 TextOverflow.Ellipsis // 显示省略号 … TextOverflow.MARQUEE // 跑马灯滚动API 10实战最常用的是Ellipsis。MARQUEE适合广告横幅、通知栏规则面板里用不上。三、实战 1自动换行的长说明把规则改成一段连贯的话让Text自动换行Text(点击列投放猫咪相邻同级猫咪自动合并升级连续合并触发连击加分猫咪堆到顶部则游戏结束。) .fontSize(13) .fontColor(#7F8C8D) .lineHeight(20) // 行高 20vp字号 13行距舒展 .textAlign(TextAlign.Start) .width(100%) // 必须给宽度否则换行不生效关键点必须给widthText默认宽度由内容撑开不限制宽度就不会换行。给width(100%)让它撑满父容器超出才会折行。lineHeight比字号大13 字号配 20 行高行距舒展不设lineHeight走默认约 1.2 倍字号行间稍挤。textAlign只对多行有效单行文本水平对齐由父容器决定。提示lineHeight单位也是 vp。常见经验值是字号的 1.4–1.6 倍。13 字号 → 18–22 行高都合理。四、实战 2溢出省略的截断说明如果说明更长但面板空间有限需要截断显示省略号Text(点击列投放猫咪相邻同级猫咪自动合并升级连续合并触发连击加分猫咪堆到顶部则游戏结束合并到传奇等级可获得额外奖励。) .fontSize(13) .fontColor(#7F8C8D) .maxLines(2) .textOverflow({ overflow: TextOverflow.Ellipsis }) .lineHeight(20) .width(100%)关键点maxLines(2)textOverflow.Ellipsis是一对黄金搭档限制 2 行超出显示…。不配textOverflow只设maxLines超出部分被裁掉但不显示省略号用户不知道还有更多内容。ClipvsEllipsisClip直接切Ellipsis显示…句末后者更友好。效果示意配置效果maxLines(2)单独2 行后硬切无提示maxLines(2)Ellipsis2 行末尾…提示有更多不设maxLines全部显示可能撑爆面板五、实战 3Span 混排多段不同样式规则说明里想强调「同级」「连击」两个关键词让它们变色加粗。这时单个Text办不到需要Text套多个SpanText() { Span(• ) .fontColor(#7F8C8D) .fontSize(13) Span(相邻同级) .fontColor(#E74C3C) .fontSize(13) .fontWeight(FontWeight.Bold) Span(猫咪自动合并升级) .fontColor(#7F8C8D) .fontSize(13) } .width(100%) .lineHeight(20)Span 是行内文本组件只能作为Text或RichEditor的子组件单独使用不显示。它继承父Text的字号行高也能局部覆盖样式。提示参考 文本显示 (Text/Span) 官方指南。Span 与 Text 同时配置内容时Span 内容会覆盖 Text 内容——别在Text(xxx)里再套Span外层xxx会被丢弃。六、实战 4measureTextSize 测算行数进阶场景根据内容动态判断是否需要「展开/收起」按钮。HarmonyOS 提供measureTextSize测算文本尺寸import { } from kit.ArkUI // 在组件方法内调用 const uiContext this.getUIContext() const titleSize uiContext.getMeasureUtils().measureTextSize({ textContent: this.fullRuleText, fontSize: 13, lineHeight: 20, constraintWidth: 280 // 限制宽度与实际 Text 宽度一致 }) const heightVp uiContext.px2vp(Number(titleSize.height)) const lineCount Math.round(heightVp / 20) // 行高 20 → 算行数 if (lineCount 2) { // 超过 2 行显示展开按钮 this.needExpand true }关键点constraintWidth要与实际Text的宽度一致否则测出的行数不对。px2vp转换measureTextSize返回的是 px要转 vp。API 20新增getParagraphs20更直观拿行数参考 文本展开折叠官方指南。七、完整代码规则面板两种写法对比7.1 原版5 段 Text 分行本项目当前写法Column() { Text(游戏规则) .fontSize(14) .fontWeight(FontWeight.Bold) .fontColor(#2C3E50) .margin({ bottom: 8 }) Text(• 点击列投放猫咪) .fontSize(13) .fontColor(#7F8C8D) .margin({ bottom: 4 }) Text(• 相邻同级猫咪自动合并升级) .fontSize(13) .fontColor(#7F8C8D) .margin({ bottom: 4 }) Text(• 连续合并触发连击加分) .fontSize(13) .fontColor(#7F8C8D) .margin({ bottom: 4 }) Text(• 猫咪堆到顶部则游戏结束) .fontSize(13) .fontColor(#7F8C8D) } .width(80%) .padding(16) .backgroundColor(rgba(255,255,255,0.7)) .borderRadius(12) .alignItems(HorizontalAlign.Start)7.2 进阶版Span 混排 关键词高亮Column() { Text(游戏规则) .fontSize(14) .fontWeight(FontWeight.Bold) .fontColor(#2C3E50) .margin({ bottom: 8 }) Text() { Span(• 点击列投放猫咪).fontSize(13).fontColor(#7F8C8D) } .lineHeight(20) .margin({ bottom: 4 }) Text() { Span(• 相邻).fontSize(13).fontColor(#7F8C8D) Span(同级).fontSize(13).fontColor(#E74C3C).fontWeight(FontWeight.Bold) Span(猫咪自动合并升级).fontSize(13).fontColor(#7F8C8D) } .lineHeight(20) .margin({ bottom: 4 }) Text() { Span(• 连续合并触发).fontSize(13).fontColor(#7F8C8D) Span(连击).fontSize(13).fontColor(#F39C12).fontWeight(FontWeight.Bold) Span(加分).fontSize(13).fontColor(#7F8C8D) } .lineHeight(20) .margin({ bottom: 4 }) Text() { Span(• 猫咪堆到顶部则).fontSize(13).fontColor(#7F8C8D) Span(游戏结束).fontSize(13).fontColor(#E74C3C).fontWeight(FontWeight.Bold) } .lineHeight(20) } .width(80%) .padding(16) .backgroundColor(rgba(255,255,255,0.7)) .borderRadius(12) .alignItems(HorizontalAlign.Start)进阶版让「同级」「连击」「游戏结束」三个关键词彩色加粗视觉引导用户关注核心机制。八、调试技巧多行文本怎么对齐量加临时 border.border({ width: 1, color: Color.Red })看清Text占框调完去掉。lineHeight调整行间太挤就加lineHeight太松就减。width验证换行不生效多半是没给width或给了auto。预览器 vs 真机Emoji 和某些字体在预览器可能缺失以真机为准。九、性能与最佳实践Span别嵌套太深单Text内 5–8 个Span性能尚可超过考虑拆多个Text。长文本用maxLinesEllipsis避免长描述撑爆容器。lineHeight统一同一面板内所有Text的lineHeight取值一致视觉才整齐。textAlign用对阅读型内容Start标题型Center数字型End。总结本篇我们从规则说明面板切入掌握Text的maxLines、textOverflow、textAlign、lineHeight四大多行排版属性并用Span混排做了关键词高亮进阶。核心要点width是换行前提maxLinesEllipsis是截断标配Span是行内样式唯一解。下一篇我们将继续主菜单拆解「开始游戏」按钮的Button组件圆角与阴影效果。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源「猫猫大作战」项目源码本仓库entry/src/main/ets/pages/Index.ets文本显示 (Text/Span) 官方指南文本展开折叠 — HarmonyOS 官方文档文本概述 — HarmonyOS 官方文档Span 组件 API 参考开源鸿蒙跨平台社区HarmonyOS 开发者官方文档首页系列索引本仓库articles/INDEX.md

相关新闻

Style2Paints V4:AI驱动的分图层自动上色技术深度解析

Style2Paints V4:AI驱动的分图层自动上色技术深度解析

Style2Paints V4:AI驱动的分图层自动上色技术深度解析 【免费下载链接】style2paints sketch style paints :art: (TOG2018/SIGGRAPH2018ASIA) 项目地址: https://gitcode.com/gh_mirrors/st/style2paints 在数字艺术创作领域,手动上色一直是耗…

2026/7/28 2:31:07阅读更多 →
波段舞者系统 同花顺期货通指标

波段舞者系统 同花顺期货通指标

今天给大家带来是一款同花顺期货通指标,并且已经上架到同花顺期货通的指标广场上了。喜欢的朋友可以去指标广场安装试用!!友情提示:(指标只是辅助,不作建议)拼多多店铺:指标公式编写…

2026/7/28 2:31:07阅读更多 →
SSE、WebSocket和WebRTC怎么选?AI聊天、语音Agent与工具进度推送架构指南

SSE、WebSocket和WebRTC怎么选?AI聊天、语音Agent与工具进度推送架构指南

文章摘要 AI应用需要传输文本Token、工具执行进度、语音、图片和用户打断事件。SSE、WebSocket与WebRTC都能实现“实时”,但它们的通信方向、网络适应性、浏览器支持、音视频能力、代理兼容性和开发复杂度完全不同。本文以AI聊天、长任务进度、实时语音、数字人和协…

2026/7/28 2:31:07阅读更多 →
在Windows 10/11上运行Android应用的终极方案:WSABuilds完整指南

在Windows 10/11上运行Android应用的终极方案:WSABuilds完整指南

在Windows 10/11上运行Android应用的终极方案:WSABuilds完整指南 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU…

2026/7/28 3:53:18阅读更多 →
如何构建企业级AI技能架构:Awesome Claude Skills的3大核心模块解析

如何构建企业级AI技能架构:Awesome Claude Skills的3大核心模块解析

如何构建企业级AI技能架构:Awesome Claude Skills的3大核心模块解析 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trendi…

2026/7/28 3:53:18阅读更多 →
Source 2资源解析终极指南:ValveResourceFormat专业工具详解

Source 2资源解析终极指南:ValveResourceFormat专业工具详解

Source 2资源解析终极指南:ValveResourceFormat专业工具详解 【免费下载链接】ValveResourceFormat Source 2 Viewer is an all-in-one tool to browse VPK archives, view, extract, and decompile Source 2 assets, including maps, models, materials, textures,…

2026/7/28 3:53:18阅读更多 →
基于ESP32与TensorFlow Lite Micro的轻量化物体识别系统实践

基于ESP32与TensorFlow Lite Micro的轻量化物体识别系统实践

1. 项目缘起:当掌控板遇上植物,一个“小方舟”的诞生最近在折腾掌控板,总想用它做点既有趣又有用的小玩意儿。手头正好有个百灵鸽扩展板,能接摄像头,就琢磨着能不能让这块小板子“长眼睛”,干点识别物体的活…

2026/7/28 3:53:18阅读更多 →
AList终极部署指南:5步搭建你的个人云盘聚合器

AList终极部署指南:5步搭建你的个人云盘聚合器

AList终极部署指南:5步搭建你的个人云盘聚合器 【免费下载链接】alist 🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。 项目…

2026/7/28 3:53:18阅读更多 →
终极指南:如何在5分钟内用Oh My Posh打造高颜值终端界面

终极指南:如何在5分钟内用Oh My Posh打造高颜值终端界面

终极指南:如何在5分钟内用Oh My Posh打造高颜值终端界面 【免费下载链接】oh-my-posh The most customisable and low-latency cross platform/shell prompt renderer 项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-posh 你是否厌倦了单调的黑白命…

2026/7/28 3:51:18阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/27 1:14:34阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →