目录
- 最终效果
- 拆开讲讲
- 按压和释放分开处理
- 按压动画要快
- 释放动画多段回弹
- 背景颜色
- 几个可以调的参数
- 什么时候用
- 小结
- 完整代码
- 工程下载
按钮的交互反馈决定了用户按下去有没有感觉。这篇做一个强调手感的按钮,按压时快速缩小,松开后像果冻一样多段回弹。
不用SpringAnimation,用SequentialAnimation手动串几段NumberAnimation,精确控制每一段的目标值和时长。
最终效果
按住按钮快速缩到 82%,松开后先弹到 112%,再缩到 96%,最后回到 100%,三段回弹模拟果冻的阻尼振荡。示例里第二个按钮弹得更夸张。
拆开讲讲
核心就两块,按压和释放用不同的动画,以及怎么避免两个动画打架。
按压和释放分开处理
不用Behavior on scale,因为按压和释放需要完全不同的动画曲线。用onPressedChanged区分。
onPressedChanged: { if (pressed) { releaseAnim.stop() pressAnim.restart() } else { pressAnim.stop