部分约束集动画
Partial ConstraintSet Animation
我正在尝试使用布局文件中的 ConstraintSet 创建动画:
final ConstraintSet target = new ConstraintSet();
target.clone(context, R.layout.layout_name);
TransitionManager.beginDelatedTransition(sceneRoot);
target.applyTo(constraintLayout);
这可以用来制作动画,但我想将动画绑定到抽屉视图,所以它发生在用户手动拖动抽屉时。在抽屉侦听器中,我可以获得一个 slideOffset
浮点数,当抽屉被拖动时它会被调用,但我找不到一种方法来计算要使用的 ConstraintSet 动画过程中的一个步骤。我怎样才能得到这个,或者是否有更好的现有方法将动画绑定到这样的侦听器?
正如我担心的那样,目前看来,这对于 ConstraintSet 来说是不可能的。好消息是 ConstraintLayout 2.0
即将推出,并包含针对此问题的开箱即用的解决方案:MotionLayout。 MotionLayout 将允许使用 ConstraintLayout UI 进行各种复杂的动画,并且有一个 setProgress()
方法可以直接绑定到抽屉侦听器(或任何其他线性动画步骤提供程序)。
我正在尝试使用布局文件中的 ConstraintSet 创建动画:
final ConstraintSet target = new ConstraintSet();
target.clone(context, R.layout.layout_name);
TransitionManager.beginDelatedTransition(sceneRoot);
target.applyTo(constraintLayout);
这可以用来制作动画,但我想将动画绑定到抽屉视图,所以它发生在用户手动拖动抽屉时。在抽屉侦听器中,我可以获得一个 slideOffset
浮点数,当抽屉被拖动时它会被调用,但我找不到一种方法来计算要使用的 ConstraintSet 动画过程中的一个步骤。我怎样才能得到这个,或者是否有更好的现有方法将动画绑定到这样的侦听器?
正如我担心的那样,目前看来,这对于 ConstraintSet 来说是不可能的。好消息是 ConstraintLayout 2.0
即将推出,并包含针对此问题的开箱即用的解决方案:MotionLayout。 MotionLayout 将允许使用 ConstraintLayout UI 进行各种复杂的动画,并且有一个 setProgress()
方法可以直接绑定到抽屉侦听器(或任何其他线性动画步骤提供程序)。