1

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

在此处输入图像描述

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

此外,如果我单击该项目,动画就会开始。

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

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

我尝试使用Adapter的“convertView”,我也尝试重绘整体,还是不行。我希望解决方案在于在 ListView 中启用它的选项。谢谢你。

4

2 回答 2

0

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

于 2013-06-14T08:23:56.740 回答
0

您的列表视图 layout_width 和 layout_height attr。是match_parent吗?如果 listview 布局属性是 wrap_content,它会在每个宽度或高度发生变化时调用 getView。

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

    如果(转换视图 == 空){
     // 膨胀
     ...
     convertView.setTag(holder);
    }别的{
     持有人 = ((持有人)convertView.getTag());
    }

...

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

    // 膨胀转换视图
    convertView = inflater.inflate(, );
    // 比使用 convertViews 子视图

于 2013-09-27T08:50:56.153 回答