<KeyFrameSet>

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

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

假设运动序列的初始状态为在视图左下角有一个不透明球,而最终状态为该球到达右上角且透明。默认情况下,MotionLayout 会沿对角线移动此球,球体逐渐透明,直到到达目标位置为止。您可以使用 <KeyFrameSet> 更改此行为。例如,您可以让球纵向移至左上角,同时保持完全不透明,然后水平移至右上角,同时淡出。为此,您可以创建 <KeyFrameSet> 并在其中添加 <KeyPosition><KeyAttribute><KeyPosition> 指定球的中间位置,<KeyAttribute> 指定球在运动的中点保持不透明。

语法

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

包含于

<Transition>

包含

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