在位置1中为listview的子视图设置动画

时间:2013-06-14 08:18:41

标签: android-listview android-animation android-adapter

我创建了一个代码,除了位置1之外,它动画了ListView的所有子项。

enter image description here

如果我使用“home”按钮缩小应用程序并且我重新开启,则不会启动位置1的视图动画。因此,如果我按下操作栏中的“首选项”按钮启动另一个活动,然后按“后退”按钮,动画就会启动。

此外,如果我点击该项目,则会启动动画。

最后,如果我滚动隐藏位置1的视图并滚动再次绘制,则动画开始。

我不认为发布代码是有用的,因为它适用于所有其他视图。

我尝试使用适配器的“convertView”,我也尝试重绘整个,它不起作用。 我希望解决方案在于在ListView中启用它的选项。谢谢。

2 个答案:

答案 0 :(得分:0)

我有同样的问题。我刚刚注意到位置1的视图被重绘(在适配器的getView方法中)比其他视图重写了多次。

答案 1 :(得分:0)

您的listview layout_width和layout_height attr。是match_parent吗?如果listview布局attrs是wrap_content,则每次更改宽度或高度都会调用getView。

优化适配器代码,但您的代码需要位置变量不应使用。因为非常危险的行缓存。


    if( convertView == null){
     // inflate
     ...
     convertView.setTag(holder);
    }else{
     holder = ((Holder)convertView.getTag());
    }

...

其他选项非常简单但不快速且内存友好


    // inflate convertView
    convertView = inflater.inflate(, );
    // than use convertViews child view

相关问题