从onAnimationUpdate设置`Visibility`的问题

问题描述

我当前正在使用一个Android应用程序,其中需要使用一些Animation。 当这些Views中的Views大于特定值(例如0.5f)时,我想使Animated value可见,而其他Views不可见。

类似这样的东西:

@Override
public void onAnimationUpdate(ValueAnimator animation) {

    if((float)animation.getAnimatedValue() >= 0.2){
        (View)animation.setVisibility(View.GONE); //Something like this
        
    }
}

您知道setVisibility()函数不起作用!

那么,我该怎么做? 有什么办法吗?

解决方法

此处您要设置ValueAnimator的可见性。这行不通。

尝试更改实际视图的可见性,而不是ValueAnimator。

@Override
public void onAnimationUpdate(ValueAnimator animation) {

    if((float)animation.getAnimatedValue() >= 0.2){
        viewToBeMadeInvisible.setVisibility(View.GONE); //Like this
        
    }
}

更新:您可以添加AnimatorListenerAdapter来侦听动画结束。

animation.addListener(new AnimatorListenerAdapter() 
{
    @Override

    public void onAnimationEnd(Animator animation) 
    {
        //set your visibility code here.
    }
});