为什么在android中多次调用ListView的getVIew方法

时间:2014-08-28 12:14:29

标签: java android

假设我在android中有一个ListView,它的适配器绑定到一个arraylist,包含两个元素。

但是我发现一个问题,当我启动activity所在的ListView时,getView的{​​{1}}方法被多次调用(at至少4次)。但是我的arrayAdapter只能容纳2个元素。实际上屏幕上只有两个元素出现。

所以这是我的问题:为什么调用getView方法的次数要多于它应该的次数?

arraylist

大约有4个登录LogCat。从我的观点来看,它应该是2.

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

可以首先请求项目以进行度量/布局,然后再次实际附加到列表视图。

如果您的列表视图位于需要多个度量/布局传递的布局中,例如带有权重的LinearLayout,那么您的适配器中的视图请求会更多。

要了解调用getView()方法的原因,请在其中放置调试器断点并检查调用堆栈。