一句话建议:
在蜂鸟架构基础上,增加一个全局动画状态机,统一管理所有系统UI动画的状态。触控打断时,状态机直接切换状态,而不是让每个动画各自“取消再启动”。目标是让文件夹、通知栏、多任务、控制中心等所有场景都支持并行打断。
一、用户的困惑
很多荣耀用户都有同感:动画还没播完,点下一个操作没反应,像被“硬控”了。文件夹打开时不能滑动,通知栏下拉时不能点别的,返回桌面时不能呼出控制中心。手速快一点,就要等动画播完才能操作。
目前只有多任务堆叠等少数场景支持并行打断,大部分场景仍然“不支持打断”。
二、根因在哪
现在每个系统动画各自为战。动画A在跑,触控来了,动画A要先“取消自己”,再让动画B“启动自己”。这两步是串行的,中间有间隙,用户就感觉卡了一下。
而且每个场景都要单独写打断逻辑,工作量大,覆盖不全。
三、方案:全局动画状态机
1. 统一注册
所有系统UI动画启动时,向状态机注册:当前状态、能不能打断、打断后切到哪个状态。
2. 统一决策
触控事件到达时,状态机立刻判断:当前动画能不能打断?打断后切到哪个状态?决策是毫秒级的。
3. 状态切换代替“取消+启动”
29 人已参与
支持
反对