- 本文介绍什么是云主机以及云主机的优势(性价比高、弹性可扩展、安全隔离高、多操作系统支持),然后提供了选择云主机的选购指南(名气大、口碑好、价格适中),最后推荐了几款备受欢迎的云主机。 本文介绍什么是云主机以及云主机的优势(性价比高、弹性可扩展、安全隔离高、多操作系统支持),然后提供了选择云主机的选购指南(名气大、口碑好、价格适中),最后推荐了几款备受欢迎的云主机。
- 今天我们先不碰复杂绘图,只把 Shape 当成一块轻量画板来用。页面里那些小背景、小标识、小装饰线,如果每次都切图,维护起来会很累;用 Shape 直接画,很多时候更省事。 先看这个页面画了什么 这个 Demo 分成四块: 第一块把 Rect、Circle、Path 放进同一个 Shape 里,先建立“容器 + 子图形 今天我们先不碰复杂绘图,只把 Shape 当成一块轻量画板来用。页面里那些小背景、小标识、小装饰线,如果每次都切图,维护起来会很累;用 Shape 直接画,很多时候更省事。 先看这个页面画了什么 这个 Demo 分成四块: 第一块把 Rect、Circle、Path 放进同一个 Shape 里,先建立“容器 + 子图形
- 深浅色适配不是把白底改成黑底。页面里的文字、边框、按钮和状态反馈都要重新检查对比度和语义。 本篇边界 这篇只做页面局部预览,不调用全局 setColorMode,也不改应用级主题策略。真实项目里,全局深浅色切换应由产品策略、系统设置和应用配置一起决定。 WithTheme 只改变主题资源的解析方式;硬编码十六进制颜色不 深浅色适配不是把白底改成黑底。页面里的文字、边框、按钮和状态反馈都要重新检查对比度和语义。 本篇边界 这篇只做页面局部预览,不调用全局 setColorMode,也不改应用级主题策略。真实项目里,全局深浅色切换应由产品策略、系统设置和应用配置一起决定。 WithTheme 只改变主题资源的解析方式;硬编码十六进制颜色不
- 主题不是给页面换一套好看的颜色。主题令牌要回答颜色的职责:哪个是品牌主色,哪个是警示色,哪个代表确认结果,哪个承担主要正文。 本篇边界 这篇只做 CustomTheme / ThemeControl 的最小示例,不扩展成完整设计系统。示例只列 4 个常用颜色令牌,避免一开始维护一大套无人使用的 token。 交互预期 主题不是给页面换一套好看的颜色。主题令牌要回答颜色的职责:哪个是品牌主色,哪个是警示色,哪个代表确认结果,哪个承担主要正文。 本篇边界 这篇只做 CustomTheme / ThemeControl 的最小示例,不扩展成完整设计系统。示例只列 4 个常用颜色令牌,避免一开始维护一大套无人使用的 token。 交互预期
- 今天我们用 stateStyles 给按钮的不同状态配不同外观。 很多新手写按钮时,只写 normal 样式。结果按下、聚焦、禁用都差不多,用户很难判断当前控件到底能不能点、有没有被选中。stateStyles 解决的是这个视觉反馈问题。 参考文档:组件扩展 先说结论 stateStyles 适合: 按下时给反馈。 聚 今天我们用 stateStyles 给按钮的不同状态配不同外观。 很多新手写按钮时,只写 normal 样式。结果按下、聚焦、禁用都差不多,用户很难判断当前控件到底能不能点、有没有被选中。stateStyles 解决的是这个视觉反馈问题。 参考文档:组件扩展 先说结论 stateStyles 适合: 按下时给反馈。 聚
- 今天我们用 @Styles 把几组重复样式收起来。 前面我们一直在写卡片、圆角、边框、背景色。这些东西如果每个组件都复制一遍,页面很快会变得又长又烦。@Styles 的价值很直接:它只复用样式,不生成结构。 参考文档:组件扩展 先分清它和 @Builder @Builder 复用的是一段 UI: 可以有 Column、 今天我们用 @Styles 把几组重复样式收起来。 前面我们一直在写卡片、圆角、边框、背景色。这些东西如果每个组件都复制一遍,页面很快会变得又长又烦。@Styles 的价值很直接:它只复用样式,不生成结构。 参考文档:组件扩展 先分清它和 @Builder @Builder 复用的是一段 UI: 可以有 Column、
- 今天我们把 NavDestination 单独拎出来看。 Navigation 负责管栈,但真正展示内容的是 NavDestination。如果目标页只是一堆随手写进去的组件,标题、参数、返回都散在外面,后面维护会很难受。我们这次做一个最小文章列表,点进去后由目标页自己接住参数、设置标题,并负责返回。 列表页只负责选择 今天我们把 NavDestination 单独拎出来看。 Navigation 负责管栈,但真正展示内容的是 NavDestination。如果目标页只是一堆随手写进去的组件,标题、参数、返回都散在外面,后面维护会很难受。我们这次做一个最小文章列表,点进去后由目标页自己接住参数、设置标题,并负责返回。 列表页只负责选择
- 今天我们把 NavDestination 单独拎出来看。 Navigation 负责管栈,但真正展示内容的是 NavDestination。如果目标页只是一堆随手写进去的组件,标题、参数、返回都散在外面,后面维护会很难受。我们这次做一个最小文章列表,点进去后由目标页自己接住参数、设置标题,并负责返回。 列表页只负责选择 今天我们把 NavDestination 单独拎出来看。 Navigation 负责管栈,但真正展示内容的是 NavDestination。如果目标页只是一堆随手写进去的组件,标题、参数、返回都散在外面,后面维护会很难受。我们这次做一个最小文章列表,点进去后由目标页自己接住参数、设置标题,并负责返回。 列表页只负责选择
- 今天我们用 Navigation 做一个组件内的页面跳转。 刚开始写页面时,全局 router 的 pushUrl 很顺手。但当一个页面里面本来就有一组子页面,比如设置页、项目详情、二级说明页,一直用全局 router 跳来跳去,结构会越来越散。这个时候我们可以把这组子页交给 Navigation 管。 先准备一个导航 今天我们用 Navigation 做一个组件内的页面跳转。 刚开始写页面时,全局 router 的 pushUrl 很顺手。但当一个页面里面本来就有一组子页面,比如设置页、项目详情、二级说明页,一直用全局 router 跳来跳去,结构会越来越散。这个时候我们可以把这组子页交给 Navigation 管。 先准备一个导航
- 今天我们用 router.back 做一个最普通的页面回退。 页面能打开,也要能离开。很多新手写跳转时只盯着 pushUrl,等页面多了以后才发现返回路径乱了。我们先把普通回退讲清楚。 先跳到练习页 入口页有一个按钮,打开 ArkUIRouterBackTargetDemo。目标页是当前栈顶页面,里面只有说明和一个 b 今天我们用 router.back 做一个最普通的页面回退。 页面能打开,也要能离开。很多新手写跳转时只盯着 pushUrl,等页面多了以后才发现返回路径乱了。我们先把普通回退讲清楚。 先跳到练习页 入口页有一个按钮,打开 ArkUIRouterBackTargetDemo。目标页是当前栈顶页面,里面只有说明和一个 b
- 今天我们用 pushUrl 带一组参数,再在目标页用 getParams 读出来。 参数传递很常见。列表点进详情、卡片打开编辑页、搜索页带筛选条件,都绕不开它。但这里有个坑:目标页不要默认参数一定完整。 只传简单数据 Demo 里传了三个字段: 这些都是可序列化的数据。Router 参数不要塞方法、系统对象、上下文对象 今天我们用 pushUrl 带一组参数,再在目标页用 getParams 读出来。 参数传递很常见。列表点进详情、卡片打开编辑页、搜索页带筛选条件,都绕不开它。但这里有个坑:目标页不要默认参数一定完整。 只传简单数据 Demo 里传了三个字段: 这些都是可序列化的数据。Router 参数不要塞方法、系统对象、上下文对象
- 今天我们用 router.pushUrl 做一个最普通的页面跳转。 路由第一步很简单:点按钮,打开另一个页面。但真正容易出问题的地方不在按钮,而在 URL、页面栈和调用时机。我们先把最小闭环跑通,再把边界记住。 先准备一个承接页 Demo 里入口页只做一件事:跳到 ArkUIRouterTargetDemo。承接页也只 今天我们用 router.pushUrl 做一个最普通的页面跳转。 路由第一步很简单:点按钮,打开另一个页面。但真正容易出问题的地方不在按钮,而在 URL、页面栈和调用时机。我们先把最小闭环跑通,再把边界记住。 先准备一个承接页 Demo 里入口页只做一件事:跳到 ArkUIRouterTargetDemo。承接页也只
- 今天我们用 bindContentCover 做一个全屏覆盖层。 全屏覆盖适合临时进入一个完整视图,比如阅读、预览、确认一大块内容。它看起来像铺满了屏幕,但本质上还是覆盖层,所以这篇只讲打开、展示和关闭。 准备显示开关 先用一个布尔值控制覆盖层是否显示。 点击按钮时设为 true,覆盖层里的关闭按钮再设回 false。 今天我们用 bindContentCover 做一个全屏覆盖层。 全屏覆盖适合临时进入一个完整视图,比如阅读、预览、确认一大块内容。它看起来像铺满了屏幕,但本质上还是覆盖层,所以这篇只讲打开、展示和关闭。 准备显示开关 先用一个布尔值控制覆盖层是否显示。 点击按钮时设为 true,覆盖层里的关闭按钮再设回 false。
- 今天我们用 bindSheet 做一个半模态任务面板。 半模态适合处理短任务。比如整理草稿、补标签、选择分享范围,这些事不一定值得开一个完整页面,但又比一句提示复杂一点。我们这篇只做一个触发按钮和一个面板,先把最常用的结构跑通。 准备一个显示开关 bindSheet 需要一个布尔值控制显示和隐藏。 按钮点击时把它改成 今天我们用 bindSheet 做一个半模态任务面板。 半模态适合处理短任务。比如整理草稿、补标签、选择分享范围,这些事不一定值得开一个完整页面,但又比一句提示复杂一点。我们这篇只做一个触发按钮和一个面板,先把最常用的结构跑通。 准备一个显示开关 bindSheet 需要一个布尔值控制显示和隐藏。 按钮点击时把它改成
- 今天我们用 Popup 做三种贴着控件出现的小提示:基础文字气泡、顶部气泡、自定义气泡。 Popup 的重点是“贴着某个控件解释一句话”。它不像 AlertDialog 那样打断用户,也不像 ActionSheet 那样让用户选动作。我们只用最小的布尔值控制显示,不展开状态管理。 基础文字气泡 最简单的写法是 bind 今天我们用 Popup 做三种贴着控件出现的小提示:基础文字气泡、顶部气泡、自定义气泡。 Popup 的重点是“贴着某个控件解释一句话”。它不像 AlertDialog 那样打断用户,也不像 ActionSheet 那样让用户选动作。我们只用最小的布尔值控制显示,不展开状态管理。 基础文字气泡 最简单的写法是 bind
上滑加载中
推荐直播
-
华为云码道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华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签