0

我有一个视图需要在删除之前淡出,这里是代码:

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),它没有工作八倍。

有人对此有任何想法吗?

4

1 回答 1

0

从您的示例中有点不清楚,但我怀疑如果您将可运行文件发布到活动而不是创建单独的任务,那么这一切都会更好,因此它们都将在同一个线程中。

我也肯定会使用 setVisibility(view.gone)。

于 2012-05-01T20:27:35.967 回答