- 今天我们先不急着写编辑器。富文本只是“带样式的内容”,展示和编辑是两件事。 这个 Demo 放了四种选择:Text + Span、StyledString、RichText(HTML) 和 RichEditor。我们先把边界看清楚,后面写代码会少走很多弯路。 少量样式:Text + Span 如果只是几个重点词、一个标 今天我们先不急着写编辑器。富文本只是“带样式的内容”,展示和编辑是两件事。 这个 Demo 放了四种选择:Text + Span、StyledString、RichText(HTML) 和 RichEditor。我们先把边界看清楚,后面写代码会少走很多弯路。 少量样式:Text + Span 如果只是几个重点词、一个标
- 今天我们看 StyledString。它适合把文字、局部样式、段落规则,甚至图片附件,放进同一个字符串对象里管理。 如果只是几段静态文字,Text + Span 已经够用。StyledString 更适合内容本身需要带样式流转的场景,比如从编辑器拿到一段内容,再交给 Text 展示。 先准备一个 TextControl 今天我们看 StyledString。它适合把文字、局部样式、段落规则,甚至图片附件,放进同一个字符串对象里管理。 如果只是几段静态文字,Text + Span 已经够用。StyledString 更适合内容本身需要带样式流转的场景,比如从编辑器拿到一段内容,再交给 Text 展示。 先准备一个 TextControl
- 今天我们把长文本收一收,让页面先给用户一个能扫读的摘要,而不是把整段内容直接铺满屏幕。 这个 Demo 只做一件事:用 maxLines、textOverflow 和 ellipsisMode 控制长文展示,再用一个很小的状态切换“展开 / 收起”。状态这里只是为了让按钮能动起来,我们不在这篇展开讲状态管理。 先做两行 今天我们把长文本收一收,让页面先给用户一个能扫读的摘要,而不是把整段内容直接铺满屏幕。 这个 Demo 只做一件事:用 maxLines、textOverflow 和 ellipsisMode 控制长文展示,再用一个很小的状态切换“展开 / 收起”。状态这里只是为了让按钮能动起来,我们不在这篇展开讲状态管理。 先做两行
- 今天我们继续把 Text 这篇补完整:不只让文字显示出来,还要让一句话里的重点、小标签、小图标都能自然地排在一起。 页面里最常见的问题不是“没有文字”,而是文字都长一个样。标题不像标题,说明太抢眼,关键字没有重点,小图标还被单独塞进 Row 里,最后越写越乱。 这篇我们只盯文本本身。Text 管整段文字,Span 管局 今天我们继续把 Text 这篇补完整:不只让文字显示出来,还要让一句话里的重点、小标签、小图标都能自然地排在一起。 页面里最常见的问题不是“没有文字”,而是文字都长一个样。标题不像标题,说明太抢眼,关键字没有重点,小图标还被单独塞进 Row 里,最后越写越乱。 这篇我们只盯文本本身。Text 管整段文字,Span 管局
- 今天我们用一个小页面把沉浸式顶部讲清楚:背景可以铺进状态栏区域,但文字和按钮别跟着挤上去。 沉浸式布局最容易被误解成“把所有东西都顶到屏幕最上面”。这其实很危险。真正该上去的是背景、图片、色块这类装饰层;标题、按钮、正文这些可读内容,还是要留出安全距离。 第一块先看普通顶部布局。它规整、稳妥,适合大多数工具页。但如果设 今天我们用一个小页面把沉浸式顶部讲清楚:背景可以铺进状态栏区域,但文字和按钮别跟着挤上去。 沉浸式布局最容易被误解成“把所有东西都顶到屏幕最上面”。这其实很危险。真正该上去的是背景、图片、色块这类装饰层;标题、按钮、正文这些可读内容,还是要留出安全距离。 第一块先看普通顶部布局。它规整、稳妥,适合大多数工具页。但如果设
- 今天我们不做性能压测,只把几种常见布局写法摆在一起看:什么时候该少套一层,什么时候该抽一个 Builder。 初学 ArkUI 时,很容易一看到对齐问题就继续套 Row、Column。这样能写出来,但代码读起来会越来越绕。我们先看一个过度嵌套的小块,再看一个更扁平的写法。 第一块故意写得偏绕。只是标题、描述和一点说明, 今天我们不做性能压测,只把几种常见布局写法摆在一起看:什么时候该少套一层,什么时候该抽一个 Builder。 初学 ArkUI 时,很容易一看到对齐问题就继续套 Row、Column。这样能写出来,但代码读起来会越来越绕。我们先看一个过度嵌套的小块,再看一个更扁平的写法。 第一块故意写得偏绕。只是标题、描述和一点说明,
- 今天我们把网格列表再往前推一步:当入口变多时,用 LazyVGridLayout 搭一个固定高度、能滚动的多列区域。 这篇不讲无限加载,也不讲数据源增删。我们先把最基础的事情做稳:列怎么分、行列间距怎么写、卡片怎么放进去。 先准备一组卡片数据 页面里用 LazyGridCard 放标题、说明和颜色。这样写纯粹为了让 D 今天我们把网格列表再往前推一步:当入口变多时,用 LazyVGridLayout 搭一个固定高度、能滚动的多列区域。 这篇不讲无限加载,也不讲数据源增删。我们先把最基础的事情做稳:列怎么分、行列间距怎么写、卡片怎么放进去。 先准备一组卡片数据 页面里用 LazyGridCard 放标题、说明和颜色。这样写纯粹为了让 D
- 今天我们看一个更特殊的列表:ArcList。它主要面向圆形屏幕,适合穿戴设备这类场景。 这篇只做能力展示。我们不假设你当前设备就是圆形屏,也不讲表冠事件、横滑操作和懒加载,先把最基础的结构看明白。 先引入 ArcList ArcList 在当前 SDK 里通过 @kit.ArkUI 导出,所以页面顶部要写: Lengt 今天我们看一个更特殊的列表:ArcList。它主要面向圆形屏幕,适合穿戴设备这类场景。 这篇只做能力展示。我们不假设你当前设备就是圆形屏,也不讲表冠事件、横滑操作和懒加载,先把最基础的结构看明白。 先引入 ArcList ArcList 在当前 SDK 里通过 @kit.ArkUI 导出,所以页面顶部要写: Lengt
- 随着大模型发展,开发一款应用,门槛已经低到超乎想象。一个人 + Agent ,从有个想法到产品上线,自己就能全部搞定。不过Agent从开发到部署,都需要烧钱。比如做一个体重管理应用(实现记录体重、绑定教练、查看排课计划等功能),除了tokens费用,还需要部署资源:ECS 要花钱 、Tokens要花钱 、 RDS 、OBS也要花钱…… 那有没有办法把费用“省”下来?有 —— 只需要每天花几... 随着大模型发展,开发一款应用,门槛已经低到超乎想象。一个人 + Agent ,从有个想法到产品上线,自己就能全部搞定。不过Agent从开发到部署,都需要烧钱。比如做一个体重管理应用(实现记录体重、绑定教练、查看排课计划等功能),除了tokens费用,还需要部署资源:ECS 要花钱 、Tokens要花钱 、 RDS 、OBS也要花钱…… 那有没有办法把费用“省”下来?有 —— 只需要每天花几...
- 瀑布流适合“等宽但高度不一样”的内容。它不是把卡片随便往下塞,而是让每个子项根据列的高度自然补位。 Demo 里只做静态瀑布流 这篇先不讲无限加载、LazyForEach、WaterFlowSections。我们只看最基础的结构:WaterFlow 容器和 FlowItem 子项。 columnsTemplate('1 瀑布流适合“等宽但高度不一样”的内容。它不是把卡片随便往下塞,而是让每个子项根据列的高度自然补位。 Demo 里只做静态瀑布流 这篇先不讲无限加载、LazyForEach、WaterFlowSections。我们只看最基础的结构:WaterFlow 容器和 FlowItem 子项。 columnsTemplate('1
- 今天我们用 Scroll 做一个长内容页面,重点看纵向滚动、横向滚动、滚动条和边缘效果。 Scroll 最适合解决一个朴素问题:内容比容器长。我们不需要把页面撑到失控,也不需要靠一堆嵌套绕过去。给 Scroll 一个明确高度,再让里面的内容自然排列就行。 第一块是纵向滚动。外层 Scroll 定高,内部 Column 今天我们用 Scroll 做一个长内容页面,重点看纵向滚动、横向滚动、滚动条和边缘效果。 Scroll 最适合解决一个朴素问题:内容比容器长。我们不需要把页面撑到失控,也不需要靠一堆嵌套绕过去。给 Scroll 一个明确高度,再让里面的内容自然排列就行。 第一块是纵向滚动。外层 Scroll 定高,内部 Column
- 今天我们用 Scroll 做一个长内容页面,重点看纵向滚动、横向滚动、滚动条和边缘效果。 Scroll 最适合解决一个朴素问题:内容比容器长。我们不需要把页面撑到失控,也不需要靠一堆嵌套绕过去。给 Scroll 一个明确高度,再让里面的内容自然排列就行。 第一块是纵向滚动。外层 Scroll 定高,内部 Column 今天我们用 Scroll 做一个长内容页面,重点看纵向滚动、横向滚动、滚动条和边缘效果。 Scroll 最适合解决一个朴素问题:内容比容器长。我们不需要把页面撑到失控,也不需要靠一堆嵌套绕过去。给 Scroll 一个明确高度,再让里面的内容自然排列就行。 第一块是纵向滚动。外层 Scroll 定高,内部 Column
- 列表一旦有“上午/下午”“今天/本周”“系统/个人”这类归属关系,就别只往 List 里塞一个普通标题。ListItemGroup 能把标题和组内项目绑定在一起,结构会清楚很多。 这个 Demo 看两种分组感 第一块用 ListItemGroup({ header }) 放进 List,并在 List 上打开 stic 列表一旦有“上午/下午”“今天/本周”“系统/个人”这类归属关系,就别只往 List 里塞一个普通标题。ListItemGroup 能把标题和组内项目绑定在一起,结构会清楚很多。 这个 Demo 看两种分组感 第一块用 ListItemGroup({ header }) 放进 List,并在 List 上打开 stic
- 列表一多,就不要继续用 Column 往下堆了。List 自带滚动能力,子项也有明确边界,后面要做分组、吸顶、横滑或懒加载时,路也更顺。 这个 Demo 先看三件事 第一块是纵向列表。我们给 List 一个固定高度,内容超过后它自己滚动。space 负责列表项之间的距离。 第二块是水平列表。把 listDirectio 列表一多,就不要继续用 Column 往下堆了。List 自带滚动能力,子项也有明确边界,后面要做分组、吸顶、横滑或懒加载时,路也更顺。 这个 Demo 先看三件事 第一块是纵向列表。我们给 List 一个固定高度,内容超过后它自己滚动。space 负责列表项之间的距离。 第二块是水平列表。把 listDirectio
- 入口宫格、工具面板、固定行列的小卡片,都别再手算宽度了。Grid 负责容器,GridItem 负责每个格子,我们只需要把行列模板写清楚。 先看最常用的三列入口 Demo 第一块用 columnsTemplate('1fr 1fr 1fr') 和 rowsTemplate('1fr 1fr') 做了一个两行三列入口区。 入口宫格、工具面板、固定行列的小卡片,都别再手算宽度了。Grid 负责容器,GridItem 负责每个格子,我们只需要把行列模板写清楚。 先看最常用的三列入口 Demo 第一块用 columnsTemplate('1fr 1fr 1fr') 和 rowsTemplate('1fr 1fr') 做了一个两行三列入口区。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签