因为id
为start
的ConstraintSet
标签关联到Transition
标签的constraintSetStart
属性,所以它作为动画(目前只有一个动画)的起始状态。而id
为end
的ConstraintSet
标签关联到Transition
标签的constraintSetEnd
属性,所以它将作为动画的结束状态。结束状态我们将正方形设置水平居中,距离底部50dp
。
设置Constraint
标签时记得设置layout_width
与layout_height
,不然是看不到正方形的。
- 到这一步,
Transition
标签已经拥有开始和结束状态了,就差触发动画开始的操作了。给Transition
标签增加onClick
子标签,表示点击触发动画。onClick
标签增加clickAction
属性,值为toggle
,表示重复点击时,动画循环效果;增加targetId
属性,值为@id/vStartStatus
,表示点击正方形视图触发过渡动画。
此时activity_motion_scene.xml
看起来是这样子的。
效果图
OK,看到这里,你应该可以创建个类似的MotionLayout动画。还不行的话,需要回头再看看。
下面讲介绍一些标签的属性与效果。
标签与属性
Transition标签
Transition
标签主要用来指定Motion场景中一个或多个动画。即关联到动画对应的各种状态和用户交互动作。和过渡动画是大同小异的。
常用属性:
constraintSetStart
:指定动画初始状态;
constraintSetEnd
:指定动画结束状态;
duration
:指定动画时长;
autoTransiton
:是否自动开启动画。取值有:animateToStart
过渡到初始状态、animat