2014-03-19 111 views
4

我有一個ListView與適配器。當我點擊ListView上的一個項目時,適配器被清除並填充新的內容。我想要應用兩個動畫,一個是清除適配器時(從適配器上移除時滑動到左側的項目),另一個是將新項目添加到適配器(新元素滑向右側)。ListView動畫刷新適配器android

所以我想該怎麼辦時,單擊一個項目是一樣的東西:

listView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.slide_to_left));  
clearAdapter();  
listView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.slide_to_right));  
setItems(newItemList);//Refresh adapter with new items 

我的問題是,只有第二個動畫顯示。

有關我在做什麼錯的任何建議或爲什麼這不起作用?

謝謝。

解決方案

我已經能夠解決它添加動畫聽衆這樣。

Animation animationOut = AnimationUtils.loadAnimation(context, R.anim.slide_to_left); 
    animationOut.setAnimationListener(new Animation.AnimationListener() { 
     @Override 
     public void onAnimationStart(Animation animation) { 
      clearAdapter(); 
     } 

     @Override 
     public void onAnimationEnd(Animation animation) { 
     listView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.slide_to_right)); 
       setItems(newList);// update content adapter 
      } 
     } 

     @Override 
     public void onAnimationRepeat(Animation animation) { 

     } 
    }); 
    listView.startAnimation(animationOut); 

這是一種同時顯示兩種動畫的方式嗎?當我們清除適配器並將它們滑動到左側時,列表的新內容將通過動畫從右側輸入。

回答

0

註釋掉第二個動畫代碼(最後兩行),然後查看第一個animiations是否正在工作。如果工作,則嘗試在第一個動畫和第二個動畫之間添加Thread.sleep幾秒鐘。

+0

我不認爲有線程來檢查第一個動畫是否已經完成是一個好方法,應該有更好的方法。 – julio