2014-03-19 71 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