指定视图在运动序列过程中的位置和属性。默认情况下,运动从初始状态到结束状态。通过使用 <KeyFrameSet>,您可以构建更复杂的运动。

<KeyFrameSet> 包含 <KeyPosition><KeyAttribute> 节点。这些节点指定目标视图在运动中特定点的位置或属性。MotionLayout 会将视图从起始点平滑地动画到每个中间点,然后再到最终目的地。

假设运动序列的初始状态是视图左下角有一个不透明的球,最终状态是右上角有一个透明的球。默认情况下,MotionLayout 会使球沿对角线平滑移动,并逐渐变得透明,直到到达目的地时消失。通过使用 <KeyFrameSet>,您可以改变这种行为。例如,您可以让球先垂直移动到左上角,同时保持完全不透明,然后水平移动到右上角,同时逐渐淡出。您可以通过创建一个 <KeyFrameSet> 并在其中添加一个 <KeyPosition> 和一个 <KeyAttribute> 来实现此操作。<KeyPosition> 指定球的中间位置,而 <KeyAttribute> 指定球在运动中点保持不透明。

语法

<KeyFrameSet>
    [ <KeyPosition/>... ]
    [ <KeyAttribute/>...]
</KeyFrameSet>

包含于

包含

指定视图在运动序列中特定时刻的位置。
指定视图在运动序列中特定时刻的属性。