2012-05-01 26 views
0

變得可見我有需要淡出之前,我將其刪除一個視圖,這裏是代碼:機器人 - LinearLayout中褪色後調用removeView()的時候了

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),它不是eighter工作。

有人對此有任何想法嗎?

回答

0

這是從您的樣品有點不清楚,但我懷疑這會,如果你發佈可運行的活動,而不是建立一個單獨的任務,因此都將在同一個線程都更好地工作。

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

+0

感謝您的答覆。如果我調用activity.runOnUiThread(),它確實解決了眨眼問題。但它會讓我的UI響應速度很慢,因爲這是一個沉重的UI活動。 – user1368503