我有一个带适配器的ListView
。当我点击ListView
上的某个项目时,适配器将被清除并填充新内容。我想应用两个动画,一个是清除适配器时(从适配器中取出时项目向左滑动),另一个是新项目添加到适配器时(新元素向右滑动)。 / p>
所以点击某个项目时我想做的是:
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 :(得分:0)
注释掉第二个动画代码(最后两行),然后查看第一个动画是否正常工作。如果工作,那么尝试在第一个动画和第二个动画之间添加Thread.sleep几秒钟。