关于可见性更改的动画视图

时间:2017-05-22 10:04:59

标签: android android-animation

我使用下面给出的代码段来显示/隐藏RecyclerView内部的点击视图。问题是在第一个显示/隐藏周期后,视图显示片刻然后消失。这种情况一直持续到我重新开始活动为止。

public void changeVisibility(final View view, boolean makeVisible)
{
    if (makeVisible)
    {
        view.setVisibility(View.VISIBLE);
        view.setAlpha(0.0f);

        view.animate().alpha(1.0f);
    }
    else
    {
        view.animate()
                .alpha(0.0f)
                .setListener(new AnimatorListenerAdapter()
                {
                    @Override
                    public void onAnimationEnd(Animator animation)
                    {
                        super.onAnimationEnd(animation);
                        view.setVisibility(View.GONE);
                    }
                });

    }
}

1 个答案:

答案 0 :(得分:1)

原因是因为您在第一轮显示/隐藏视图后设置了onAnimationEnd

如果您不再需要,请删除listener。加上这个:

view.setListener(null);

到你的if (makeVisible)区块应该有效! ;)