可见性变化的动画视图
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)
块应该有效! ;)
我正在使用下面给出的代码片段 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)
块应该有效! ;)