动画网格布局从变为可见

时间:2013-11-13 14:14:56

标签: android android-layout android-animation

Gridlayout(它在相对布局中居中)

<GridLayout
    android:id="@+id/ticketLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/pile"
    android:visibility="gone"
    android:animateLayoutChanges="true" >

<!-- some content -->

现在,当我看到它时

ticketLayout.setVisibility(View.VISIBLE);
它只是出现,根本没有动画。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

此处没有默认动画。为了达到你想要的效果,我认为你需要在gridview的alpha属性上播放动画。 根据您要支持的最低API,您可以使用旧动画系统或新动画系统,甚至使用NineOldAndroids。

animateLayoutChange标志指定如果在此网格视图中动态添加视图,系统将必须播放默认动画。 (很可能是衰落效应)它对网格视图本身没有帮助。

答案 1 :(得分:1)

您需要为View设置动画。 你可以这样做,例如:

mticketLayout.setAlpha(0f);
mticketLayout.setVisibility(View.VISIBLE);

// Animate the content view to 100% opacity, and clear any animation
// listener set on the view.
mticketLayout.animate()
        .alpha(1f)
        .setDuration(mShortAnimationDuration)
        .setListener(null);

查看Android培训:http://developer.android.com/training/animation/crossfade.html