Android动画新势力——MotionLayout( 二 )


元素详解

......是运动场景文件的根元素 , 必须包含一个或多个元素 , 元素用于定义运动序列的开始和结束状态 , 以及这两种状态之间的转换 。
必须包含的元素
:指定运动场景需要的动画序列 , 可以有多个 , 每一个指定需要执行的运动序列 。 如果 包含多个元素 , MotionLayout 会根据用户的互动选择最合适的元素 , 但是要注意防止冲突 。
可以包含的元素
:运动的状态布局集 , 为元素指定开始或结束状态 。MotionLayout 关联的 可以没有 子元素 , 因为 可指向 XML 布局 , 而不是指向布局集 。
属性
  1. defaultDuration:所有动画的默认持续时间(以毫秒为单位) 。 用于给未指定持续时间的指定一个默认的持续时间 。
... 元素是用来指定视图在动画序列中某一点上的位置和属性(可同时指定多个视图) , 也叫约束条件集合 。 通常 , 一个元素可指向两个 元素 , 其中一个定义动画序列的开始 , 另一个定义动画序列的结束 。
必须包含的元素
:必须包含一个或者多个 元素 , 描述动画在特定时刻视图的位置和属性 。
属性
  1. android:id:集合的 ID , 在中通过此 ID 来引用该序列
  2. deriveConstraintsFrom:(可选)值为另一个 ConstraintSet 的 ID 。 如果指定这个属性 , ID 对应约束集合内的所有约束条件都将应用于此集合 , 除非此集明确替换它们 。
属性
  1. android:id:视图 ID , 约束视图的 ID ;
  2. 其他在 ConstraintLayout 中用来约束视图位置的属性;
该元素是用来声明运动过程中的开始和结束状态 , 包括所有预期的过度状态、用户的触发的交互等 。
属性
  1. motion:constraintSetStart:运动序列的初始状态 。 可以是 的 ID (属性值设置为“@+id/constraintSetId”) , 也可以是布局(属性值设置为"@layout/layoutName”) 。
  2. motion:constraintSetEnd:运动序列的最终状态 。 可以是 的 ID (属性值设置为“@+id/constraintSetId”) , 也可以是布局(属性值设置为"@layout/layoutName”) 。
  3. motion:duration:运动序列的时长(单位:毫秒 , 可选) 。 如果未指定 , 则使用 元素中的 defaultDuration 属性值 。
包含的元素
  1. :表示运动序列是由用户轻触触发的 。
  2. :表示运动序列是由用户滑动触发的 。
  3. :用于为运动序列中的元素指定一个或多个中间位置或属性设置 。
该元素用于指定当用户点按特定视图时要执行的操作 , 用于元素内部 , 指定当用户点击视图时触发动画序列 , 在一个内部只能有一个 元素 。
属性
  1. motion:targetId:点击的视图的 ID 。
  2. motion:clickAction:点击时触发的操作 , enum 类型 , 可选值有


    推荐阅读