Android扭曲了ListView

时间:2012-05-22 13:03:08

标签: android listview

我有一个ListView,让我们说30个项目。

对于这些项目,我使用的是自定义适配器,我将其存储在包含活动的实例变量中。

现在我想在某些情况下缓存内容(我的列表与模型对象)。这意味着如果我恢复活动,没有什么必须改变。

如果模型被缓存,我假设我不需要重绘视图,因为没有任何改变。

没有缓存我每次都会调用它,在onResume:

myAdapter.setMyData(new ArrayList<MyType>());
myAdapter.setFoo(new Foo());
myAdapter.notifyDataSetChanged();

这样就可以了,列表显示得很好。

但是当我不调用它时(除了第一次恢复此活动)(因为我正在使用缓存),ListView看起来很奇怪。虽然通常~7个项目适合屏幕,但现在我只有~2个,中间有很长的空间。而且项目内的资产也有点转移。向下滚动修复它,以下项目看起来正常,如果我向后滚动一切看起来很好。

为什么会这样?

编辑:问题的关键是

myAdapter.notifyDataSetChanged();

如果我每次在onResume上调用该列表都会正确显示。但是我不明白我为什么要这样做,因为我的数据集没有改变。

0 个答案:

没有答案