2011-04-15 101 views
1

我使用的ListView动画从API演示,例如2.这里是从onCreate方法的代码片段:列表视图和动画

ListView listview = (ListView) findViewById(android.R.id.list); 

AnimationSet set = new AnimationSet(true); 
Animation animation = new AlphaAnimation(0.0f, 1.0f); 
animation.setDuration(50); 
set.addAnimation(animation); 

animation = new TranslateAnimation(
    Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, 
    Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); 

animation.setDuration(200); 
set.addAnimation(animation); 

LayoutAnimationController controller = new LayoutAnimationController(set, 0.5f); 
listview.setLayoutAnimation(controller); 

在未来的某个时刻,notifyDataSetInvalidated()是在列表的接口调用,以及我的列表刷新。但项目不再以动画显示。

请帮忙。

回答

0

你应该看看这个线程约difference between notifyDataSetChanged() and notifyDataSetInvalidated()

总之不同的是(链接更新为指向罗曼盖伊的答案!):

  • notifyDataSetChanged:在数据集中的项目是改变(添加/删除/更新/重新排序,无论如何)。
  • notifyDataSetInvalidated:适配器的数据源不再可用。

Here你可以在notifyDataSetInvalidated函数中找到一个正在使用的工作示例。可能它也会解决动画问题。

+0

不好..我也试过.. – 2011-04-16 22:26:02

+1

这个答案中的第一个链接似乎是一种恶意软件... – godness 2015-07-08 15:08:35