我在android studio中使用动作布局来制作一个滚动页面,看起来像Twitter。我想在动画的最后将包含名称的布局的可见性设置为GONE。
通常,如果将其设置为最后消失,则动画会逐渐消失。但是我希望它突然变得sa废。
我正在使用动作布局和某种程度的关键帧理解方法,但是如何实现可见性呢?
谢谢。
答案 0 :(得分:1)
您可以如下所示设置第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帧,但是看起来几乎突然消失了。
答案 1 :(得分:0)
如果有人遇到像我这样的人,我想在这里留下答案:
动画alpha
并控制其框架可以完成这项工作,但是当您希望从布局实际将视图gone
用作视图时,我需要为此使用visibility
我在another post中编写了它,但为了便于阅读,将其保存在这里:
背景视图,当gone
为alpha
时应为0
,并且一旦alpha
变得大于0
时,只需visible
时间,但运动不应该使visibility
成为动画。
KeyFrameSet
配置visibility
,因此在第0帧,visibility
是gone
,并从第1帧 visibility
是visible
。visibility
和@id/start
约束集中设置背景视图所需的@id/end
。visibiltyMode
和ignore
约束集中将背景视图的@id/start
设置为@id/end
,因此运动将忽略为背景视图设置该属性的动画。<MotionScene
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:motion="http://schemas.android.com/apk/res-auto">
<Transition
android:id="@+id/transition"
motion:constraintSetEnd="@+id/end"
motion:constraintSetStart="@id/start"
motion:duration="@integer/standard_duration">
<KeyFrameSet>
<KeyAttribute
motion:framePosition="0"
motion:motionTarget="@id/background">
<CustomAttribute
motion:attributeName="visibility"
motion:customIntegerValue="8" />
</KeyAttribute>
<KeyAttribute
motion:framePosition="1"
motion:motionTarget="@id/background">
<CustomAttribute
motion:attributeName="visibility"
motion:customIntegerValue="0" />
</KeyAttribute>
</KeyFrameSet>
</Transition>
<ConstraintSet android:id="@+id/start">
...
<Constraint
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.5"
android:visibility="gone"
motion:visibilityMode="ignore"
/>
</ConstraintSet>
<ConstraintSet android:id="@+id/end">
...
<Constraint
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.5"
android:visibility="visible"
motion:visibilityMode="ignore"
/>
</ConstraintSet>
</MotionScene>
顺便说一句,visibility
的相应整数值为:
Visible = 0
Invisible = 4
Gone = 8