2012-05-01 3 views
0

後、私はそれを削除する前にフェードアウトする必要があるビューを持って、ここでのコードは次のとおりです。アンドロイド - removeViewを呼び出すとき)(目に見えるようになるのLinearLayoutフェードアウト

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

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

また、私は間違いなくsetVisibility(view.gone)を使用したいと思います。

+0

ご返信ありがとうございます。 activity.runOnUiThread()を呼び出すと点滅の問題を修正しました。私のUIはUIの活動性が高いためゆっくりと反応します。 – user1368503

関連する問題