我创建了一个代码,除了位置1之外,它动画了ListView的所有子项。
如果我使用“home”按钮缩小应用程序并且我重新开启,则不会启动位置1的视图动画。因此,如果我按下操作栏中的“首选项”按钮启动另一个活动,然后按“后退”按钮,动画就会启动。
此外,如果我点击该项目,则会启动动画。
最后,如果我滚动隐藏位置1的视图并滚动再次绘制,则动画开始。
我不认为发布代码是有用的,因为它适用于所有其他视图。
我尝试使用适配器的“convertView”,我也尝试重绘整个,它不起作用。 我希望解决方案在于在ListView中启用它的选项。谢谢。答案 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