Poo*_*tyy 3 android-studio android-motionlayout
我正在 android studio 中使用运动布局来制作一个滚动的页面,看起来有点像 Twitter。我想在动画的最后将包含名称的布局的可见性设置为“GONE”。
通常,如果您将其设置为最后消失,它会在动画中逐渐消失。但我希望它突然消失。
我正在使用运动布局并且有点理解关键帧,但是如何通过可见性来做到这一点?
谢谢。
我想在这里留下一个答案,以防有人像我一样遇到这种情况:
动画alpha和控制它的框架就可以完成这项工作,但是当您希望视图实际上来自gone布局时,我需要利用visibility它。
我在另一篇文章中写了它,但为了便于阅读,将其保留在这里:
背景视图,应该是何时gone,并且一次比一直保持更大,但运动不应该为所有内容设置动画。alpha0alpha0visiblevisibility
KeyFrameSet为visibility,因此在第 0 帧 visibility处为gone,从第 1 帧 visibility开始为visible。visibility背景视图所需的值。@id/start@id/endvisibiltyMode为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>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,相应的整数值为visibility:
Visible = 0
Invisible = 4
Gone = 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3979 次 |
| 最近记录: |