维护ListView项状态

时间:2010-10-06 00:50:28

标签: android

我的ListActivity绑定到ArrayAdapter,我已经覆盖了getView()方法。如果我在该方法中更改窗口小部件的可见性或修改视图的背景颜色,那么一旦修改后的列表项在滚动屏幕后返回,这些更改将以某种方式丢失。实际上,列表中的其他一些视图正在接收更改。

在滚动后重新显示修改后的视图时,如何让它看起来相同?

1 个答案:

答案 0 :(得分:3)

您是每次都在为新视图充气还是使用传入的convertView?

通常,适配器会尝试回收视图,只能创建足够的视图以提供平滑滚动。现有的回收视图作为convertView传入。您可以每次充气并返回一个新视图(昂贵),或者只是根据位置重新设置convertView(如果存在)。如果回收,您需要重新设置所有视图属性,因为无法保证您获得的回收视图与过去用于此位置的视图相同。

听起来你的错误是你没有正确地重新设置循环视图(convertView)的所有属性以匹配当前位置的数据。