我有一个需要在删除之前淡出的视图,这是代码:
private void startViewFadeOut(final View v, final LinearLayout layout)
{
AnimationTask fadeTask = new AnimationTask(_handler,
FADE_OUT_DURATION
, FADE_PERIOD)
{
@Override
protected boolean onRun(float progress)
{
float fadeAlpha = 1 - progress;
v.setAlpha(fadeAlpha);
if (progress >= 1f)
{
layout.removeView(v); -- line A
return false;
}
return true;
}
};
fadeTask.start();
}
AnimationTask只是Runnable的包装器。 淡出效果很好,但是在A行,这个视图会闪烁,再次变得可见,然后消失,我试图使用v.setVisibility(View.GONE),它不能正常工作。
有人对此有任何想法吗?
答案 0 :(得分:0)
您的示例中有点不清楚,但我怀疑如果您将runnable发布到活动而不是创建一个单独的任务,那么这一切都会更好。所以它们都将在同一个线程中。
我也肯定会使用setVisibility(view.gone)。