当前位置: 首页 > news >正文

HarmonyOS 6 ArkUI animateToImmediately 显式动画使用文档

文章目录

  • 核心 API
    • 1. animateToImmediately
    • 2. animateTo(普通显式动画)
  • 示例代码逐模块解析
    • 1 状态变量定义
    • 2 动画组件
    • 3 点击事件
      • 执行逻辑
        • 正向动画(flag = true)
        • 反向动画(flag = false)
  • 运行效果
  • 完整代码
  • 总结

核心 API

1. animateToImmediately

  • 作用:立即执行动画,不等待下一帧同步,动画指令立即生效
  • 特点:执行时机比普通animateTo更精准,适合串联、延时、分步动画
  • 语法
animateToImmediately(options,animationCallback)
参数说明
delay动画延迟时间(ms)
duration动画时长(ms)
curve动画曲线
animationCallback状态修改函数(驱动动画)

2. animateTo(普通显式动画)

  • 等待 Vsync 同步后执行,适合常规动画。

示例代码逐模块解析

1 状态变量定义

@StatewidthSize:number=250;// 宽度@StateheightSize:number=100;// 高度@StateopacitySize:number=0;// 透明度(初始隐藏)privateflag:boolean=true;// 切换标记
  • 初始状态:宽250、高100、透明度0(隐藏)

2 动画组件

Column().width(this.widthSize).height(this.heightSize).backgroundColor(Color.Red).opacity(this.opacitySize)
  • 红色盒子,尺寸、透明度由@State驱动动画。

3 点击事件

.onClick(()=>{if(this.flag){// 第一段:立即执行 → 透明度从0→1(淡入)animateToImmediately({delay:0,duration:1000},()=>{this.opacitySize=1;})// 第二段:延迟1秒执行 → 宽高缩小this.getUIContext()?.animateTo({delay:1000,duration:1000},()=>{this.widthSize=150;this.heightSize=60;})}else{// 第一段:立即执行 → 宽高放大animateToImmediately({delay:0,duration:1000},()=>{this.widthSize=250;this.heightSize=100;})// 第二段:延迟1秒执行 → 透明度淡出this.getUIContext()?.animateTo({delay:1000,duration:1000},()=>{this.opacitySize=0;})}this.flag=!this.flag;})

执行逻辑

正向动画(flag = true)
  1. animateToImmediately:立即执行,透明度 0 → 1(1秒)
  2. animateTo:延迟1秒后执行,宽高缩小(1秒)
    先淡入,再缩小
反向动画(flag = false)
  1. animateToImmediately:立即执行,宽高放大(1秒)
  2. animateTo:延迟1秒后执行,透明度 1 → 0(1秒)
    先放大,再淡出

运行效果

  1. 初始:红色方块隐藏(透明度0)
  2. 点击按钮:
    • 方块立即淡入(1秒)
    • 淡入完成后自动缩小(1秒)
  3. 再次点击:
    • 方块立即放大(1秒)
    • 放大完成后淡出隐藏(1秒)
  4. 全程时序精准、无卡顿、无等待

运行结果如图:


完整代码

// xxx.ets@Entry@Componentstruct AnimateToImmediatelyExample{@StatewidthSize:number=250;@StateheightSize:number=100;@StateopacitySize:number=0;privateflag:boolean=true;build(){Column(){Column().width(this.widthSize).height(this.heightSize).backgroundColor(Color.Red).opacity(this.opacitySize)Button('change size').margin(30).onClick(()=>{if(this.flag){animateToImmediately({delay:0,duration:1000},()=>{this.opacitySize=1;})this.getUIContext()?.animateTo({delay:1000,duration:1000},()=>{this.widthSize=150;this.heightSize=60;})}else{animateToImmediately({delay:0,duration:1000},()=>{this.widthSize=250;this.heightSize=100;})this.getUIContext()?.animateTo({delay:1000,duration:1000},()=>{this.opacitySize=0;})}this.flag=!this.flag;})}.width('100%').margin({top:5})}}

总结

  1. animateToImmediately 立即执行
    不等待 Vsync,指令发出立刻执行,时序精度更高。

  2. 必须放在 onClick 等交互事件中
    显式动画只能在事件回调中触发。

  3. delay 与 duration 单位均为毫秒
    delay:动画等待时间
    duration:动画执行时间

  4. 与 animateTo 混用可实现串联动画
    本示例是官方推荐的分步动画标准写法

  5. @State 变量必须在动画回调中修改
    才能触发属性动画。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力

http://www.jsqmd.com/news/798520/

相关文章:

  • 别再死记硬背公式了!用Python+NumPy手把手实现单纯形法(附完整代码与逐行注释)
  • 科研党/开发者的效率神器:如何用ShareMouse低成本搭建双机仿真与编程环境?
  • [实战手记]FDTD脚本——从零到一的避坑指南
  • 2026平面测力传感器十大品牌排行,广东犸力平面受力传感标杆 - 品牌速递
  • HarmonyOS 6 ArkUI AlertDialog 警告对话框使用文档
  • YOLOv11 改进 - 注意力机制 GC Block(GlobalContext Block)全局上下文块:三重变换捕获全局依赖,提升复杂场景鲁棒性
  • 35岁程序员的AI转型之路:年薪翻倍,收藏这份从零到架构师的详细指南
  • 别再手动改ONNX文件了!用torch.onnx.export正确设置动态Batch和分辨率
  • 零基础学Python第二天
  • 别再只点保存了!QGIS工程文件.QGZ和.QGS到底怎么选?附XML结构详解
  • 【MATLAB源码-第436期】基于MATLAB的FDMA、OFDMA与SC-FDMA仿真,对比频谱 PAPR 星座图。
  • 别再死记硬背公式了!用C++向量叉积5分钟搞定三角形面积计算(附OpenJudge真题解析)
  • 2026柱式测力传感器十大品牌有哪些,广东犸力铸就行业高端标杆 - 品牌速递
  • 先有《第一大道》,后有《凰标》:海棠山铁哥宇宙的完整拼图@凤凰标志
  • 收藏!小白程序员快速入门大模型:多模态LLMs学习指南
  • ComfyUI-Impact-Pack V8:专业级图像增强与语义分割的终极解决方案
  • 戴尔G15终极散热解决方案:TCC-G15完整使用指南
  • 论文降AI率攻略:从80%降到合格的5步路径+工具选择完整指南!
  • 告别臃肿库!在STM32上手动封装MQTT协议帧与JSON数据(附完整C代码)
  • YOLOv11 改进 - 注意力机制 HAT混合注意力变换器:超分重建能力迁移,提升小目标特征清晰度与检测精度
  • 如何从微信聊天记录中挖掘个人数据价值:WeChatMsg完全指南
  • 重温DIRE:走向通用人工智能生成的图像检测
  • WindowsCleaner终极指南:3步彻底解决Windows系统卡顿与C盘爆红问题
  • 清华PPT模板:让专业演示变得如此简单的终极方案
  • 中国开源软件的崛起与困境:贡献者生态的建立之难
  • 零基础友好:大白话拆解 YOLOv11,像素变检测框底层逻辑一遍过
  • 保姆级教程:在Ubuntu 22.04上从源码编译DPDK TestPMD并跑通第一个包转发测试
  • 40_《智能体微服务架构企业级实战教程》智能助手主应用服务之工具类封装
  • 别再死记硬背CTL公式了!用UPPAAL模拟器手把手带你理解A[]和E<>的区别
  • 上线AI问答、视频简历、个性化匹配——南京这家老牌家教网最近悄悄做了升级获得家长推荐口碑 - 教育资讯板