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);
這是一種同時顯示兩種動畫的方式嗎?當我們清除適配器並將它們滑動到左側時,列表的新內容將通過動畫從右側輸入。
我不認爲有線程來檢查第一個動畫是否已經完成是一個好方法,應該有更好的方法。 – julio