Android studio 运动布局:如何更改最后一帧上的视图可见性

Android studio 运动布局:如何更改最后一帧上的视图可见性,android-studio,android-motionlayout,Android Studio,Android Motionlayout,我在android studio中使用运动布局来制作一个滚动页面,看起来有点像Twitter。我想在动画的最后将包含名称的布局的可见性设置为GONE 通常,如果在结束时将其设置为“消失”,则它会在动画中逐渐消失。但我想让它突然消失 我使用的是运动布局,有点理解关键帧,但如何在可见性方面做到这一点 谢谢 您可以设置第0、99和100帧位置的alpha值,如下所示 <KeyFrameSet> <KeyAttribute android:a

我在android studio中使用运动布局来制作一个滚动页面,看起来有点像Twitter。我想在动画的最后将包含名称的布局的可见性设置为GONE

通常,如果在结束时将其设置为“消失”,则它会在动画中逐渐消失。但我想让它突然消失

我使用的是运动布局,有点理解关键帧,但如何在可见性方面做到这一点


谢谢

您可以设置第0、99和100帧位置的alpha值,如下所示

 <KeyFrameSet>

        <KeyAttribute
            android:alpha="1"
            motion:framePosition="0"
            motion:motionTarget="@id/textView" />
        <KeyAttribute
            android:alpha="1"
            motion:framePosition="99"
            motion:motionTarget="@id/textView" />
        <KeyAttribute
            android:alpha="0"
            motion:framePosition="100"
            motion:motionTarget="@id/textView" />

    </KeyFrameSet>

通过这种方式,textview将从第99帧淡出到第100帧,但看起来几乎是突然消失


我想在这里留下一个答案,以防像我这样的人遇到这样的问题:

制作
alpha
动画并控制其帧就可以了,但是如果您希望视图实际上从布局中消失,我需要使用
可见性

我是用英文写的,但为了便于阅读,请保存在这里:
背景视图,当
alpha
0
时,该视图应为
消失的
,并且一旦
alpha
大于
0
时,只需始终保持
可见
,但运动不应为
可见性设置动画

  • 关键帧集
    配置为
    可见性
    ,以便在第0帧
可见性
消失
,从第1帧开始
可见性可见
  • @id/start
    @id/end
    约束集中设置背景视图所需的
    可见性
  • @id/start
    @id/end
    约束集中的背景视图的
    visibiltyMode
    设置为
    ignore
    ,这样运动将忽略为背景视图设置此属性的动画
  • 
    ...
    ...
    
    顺便说一句,
    可见性的相应整数值为:

    Visible = 0
    Invisible = 4
    Gone = 8