可见性变化的动画视图

Animating view on visibility change

我正在使用下面给出的代码片段 show/hide 在 RecyclerView 中点击视图。问题是在第一个 show/hide 周期之后,视图显示了片刻然后消失了。这种情况一直发生,直到我重新启动 activity.

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);
                    }
                });

    }
}

原因是因为您在第一轮show/hide的视图之后设置了onAnimationEnd

您应该在不再需要时删除 listener。添加:

view.setListener(null);

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