假设我在android中有一个ListView
,它的适配器绑定到一个arraylist
,包含两个元素。
但是我发现一个问题,当我启动activity
所在的ListView
时,getView
的{{1}}方法被多次调用(at至少4次)。但是我的arrayAdapter
只能容纳2个元素。实际上屏幕上只有两个元素出现。
所以这是我的问题:为什么调用getView方法的次数要多于它应该的次数?
arraylist
大约有4个登录LogCat。从我的观点来看,它应该是2.
感谢任何帮助。
答案 0 :(得分:1)
可以首先请求项目以进行度量/布局,然后再次实际附加到列表视图。
如果您的列表视图位于需要多个度量/布局传递的布局中,例如带有权重的LinearLayout
,那么您的适配器中的视图请求会更多。
要了解调用getView()
方法的原因,请在其中放置调试器断点并检查调用堆栈。