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 でこのビューが点滅し、再び表示されてから消えます。

誰でもこれについて何か考えがありますか?

4

1 に答える 1

0

あなたのサンプルからは少し不明確ですが、別のタスクを作成するのではなく、実行可能なものをアクティビティに投稿すると、すべてが同じスレッドになるので、これはすべてうまくいくと思います。

setVisibility(view.gone) も間違いなく使用します。

于 2012-05-01T20:27:35.967 に答える