动画元素从 Gone 到 Visible(而不是从 Invisible)

Posted

技术标签:

【中文标题】动画元素从 Gone 到 Visible(而不是从 Invisible)【英文标题】:Animate element from Gone to Visible (rather than from Invisible) 【发布时间】:2014-08-18 09:45:03 【问题描述】:

我想淡入一个元素,但是以某种方式将它隐藏 (GONE) 到可见状态,从而移开挡道的元素。我目前使用的动画是AlphaAnimation

Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(2000);

但这只是将它从INVSIBLE 动画化到VISIBLE,我想要将它从GONE 动画化到VISIBLE

这甚至可能吗,还是我必须通过为周围元素设置动画来使其变得更复杂?

【问题讨论】:

【参考方案1】:

GONE 和 INVISIBLE 之间的区别在于,当视图为 INVISIBLE 时,布局仍将其视为存在,而 GONE 会导致布局发生变化。因此,将 alpha 从 GONE 设置为 VISIBLE 并没有真正的意义。

android 为您提供开箱即用的相当不错的动画。您只需告诉它为您设置动画布局更改。因此,只需将视图的可见性从 GONE 设置为 VISIBLE 即可自动启动。

<LinearLayout android:id="@+id/container"
    android:animateLayoutChanges="true"
    ...
/>

当它发生时,这个动画将其他组件滑开以腾出空间,然后在相关视图中淡出,所以无论如何可能就是你想要的。

更多信息请参见http://developer.android.com/training/animation/layout.html

【讨论】:

以上是关于动画元素从 Gone 到 Visible(而不是从 Invisible)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ANDROID 中为 View.GONE 到 View.VISIBLE 的视图设置动画

从 GONE 到 VISIBLE 的 Android 可见性第一次不起作用

如何从 View.gone 恢复视图。在xml中使用'android:visibility =“gone”'后setVisibility(View.VISIBLE)不起作用

visible,invisible,gone区别

。翻转手机时,.GONE和.VISIBLE会重置

Android LinearLayout 动画的可见性问题