android - 具有三次函数的 MotionLayout motionInterpolator 无法按预期工作
问题描述
我有一个 MotionLayout 过渡,它带有一个带有三次贝塞尔函数的运动插值器:
<Transition
android:id="@+id/transition01"
motion:constraintSetStart="@+id/start"
motion:constraintSetEnd="@+id/end"
motion:motionInterpolator="cubic(.81,.1,.92,1.4)"
motion:duration="1000">
我希望在过渡结束时会在动画结束时产生类似“弹簧”的效果,如下所示: https ://cubic-bezier.com/#.81,.1,.92,1.4
但是在动画结束时,目标视图只是坚持最终的约束,而不做反弹效果。
我也试过motion:motionInterpolator="cubic-bezier(.81,.1,.92,1.4)"
没有任何成功。
有谁知道我如何使用 MotionLayout 实现这一目标?感谢您提供任何线索。
这是我正在使用的版本:
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
解决方案
CL 2.0 不支持过冲插值(技术外推)。所以输出的上限是 0 到 1。
2.1 确实支持插值。所以这将在 2.1 中工作(目前在 alpha 中)
推荐阅读
- python - 谁能向我解释以下python代码是什么?
- xml - cakephp http 如何发回响应
- python - 在linkedin API中获取授权代码错误
- angular - 从 Firebase 实时数据库中检索单个值(Angularfire 5 和 Ionic 3)
- jquery - 链接点击调用控制器并打开一个新选项卡 - jQuery & ASP.NET MVC
- c# - 在不破坏 C# 的情况下切换 case 执行代码
- c# - asp.net core - 从 appsettings.json 设置 Serilog.Exceptions
- javascript - 'this' 和普通变量声明之间的区别
- angular - 在 angular-cli 中打印自定义原理图日志
- javascript - 如何使用异步 getJSON 数据管理 videojs 的多个实例?