鸿蒙应用入门级开发者认证实验二(每日任务)
【摘要】 shadow属性的颜色值使用 ARGB 格式的 8 位十六进制表示法,而非传统的 6 位 RGB 格式。阴影效果通常需要半透明以实现柔和的视觉过渡,ARGB 格式通过 Alpha 通道精确控制透明度。颜色值 #1F000000的构成:前两位 1F表示 透明度(Alpha 通道),范围 00(完全透明)到 FF(完全不透明)。1F换算为十进制是 31,透明度约为 31/255 ≈ 12%。后六...

shadow属性的颜色值使用 ARGB 格式的 8 位十六进制表示法,而非传统的 6 位 RGB 格式。阴影效果通常需要半透明以实现柔和的视觉过渡,ARGB 格式通过 Alpha 通道精确控制透明度。颜色值 #1F000000的构成:
- 前两位
1F- 表示 透明度(Alpha 通道),范围
00(完全透明)到FF(完全不透明)。 1F换算为十进制是31,透明度约为31/255 ≈ 12%。
- 表示 透明度(Alpha 通道),范围
- 后六位
000000- 表示标准的 RGB 颜色(红、绿、蓝通道),这里是纯黑色。
// 完全不透明的黑色阴影(Alpha=FF)
shadow({ radius: 6, color: "#FF000000", offsetX: 2, offsetY: 4 })
// 半透明红色阴影(Alpha=80,约50%透明度)
shadow({ radius: 6, color: "#80FF0000", offsetX: 2, offsetY: 4 })
Flex来源于 Flexible(弹性的)的缩写形式,用于以灵活方式排列、对齐子组件,并自动分配剩余空间。此属性设置主轴对齐方式为 “两端对齐”:
- 首尾对齐:第一个子组件紧贴父容器起始端,最后一个子组件紧贴父容器终点端。
- 中间等距:其余子组件沿主轴均匀分布,相邻子组件间距相同。
效果示例(三个子组件):
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('1').width('20%').height(50) // 左端对齐
Text('2').width('20%').height(50) // 自动居中
Text('3').width('20%').height(50) // 右端对齐
}
ArkTS 中 () => {}的箭头函数回调形式是现代前端/移动开发中的常见范式,与 C 语言的函数指针有区别。
| 特性 | C 语言函数指针 | ArkTS 箭头函数 |
|---|---|---|
| 语法 | void (*func)(int) |
(param) => { ... } |
| 作用域绑定 | 无自动绑定,需手动传参 | 自动捕获外层 this(组件实例) |
| 定义位置 | 需预先声明独立函数 | 可内联在调用处(匿名函数) |
| 内存管理 | 显式指针操作 | 由运行时自动垃圾回收 |
| 典型应用 | 回调、插件架构 | 事件处理、异步操作 |
Checkbox().onChange((value: boolean) => {
if(value) this.finishTask++; // ✅ 自动绑定外层 this
else this.finishTask--; // ✅ 直接访问组件成员变量
})
- 自动
this绑定 箭头函数没有自己的this上下文,直接继承外层作用域的this。C 需手动传递结构体指针实现类似效果。 - 闭包环境捕获 可无缝访问外层变量(如示例中的
this.finishTask),无需额外传参。C 需用void* userdata参数传递上下文。 - 语法简洁性 内联写法避免函数命名污染,特别适合短逻辑(如事件响应)。C 需先定义函数再传递指针,破坏代码连贯性。
如何理解?
- 理解闭包本质 将
(value) => { ... }视为 自带执行环境的函数对象,类似 C++ 的 lambda 表达式[this](bool value){ ... } - 注意资源管理 避免在回调内创建大对象(自动 GC 有开销),复杂逻辑建议抽离为类方法
- 类型安全优势 ArkTS 的类型标注(如
: boolean)提供编译时检查,比 C 的void*更安全
在声明式 UI 框架(如 ArkUI)中,回调本质是 “描述行为"而非"传递函数指针”。这种范式能更自然地表达 UI 与数据的绑定关系。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)