首页 > 代码库 > Android ListView的适配器 Adapter 中GetView方法调用次数大于数据条数的问题

Android ListView的适配器 Adapter 中GetView方法调用次数大于数据条数的问题

情况描述:

今天在写数据展示的时候,用了ListView,在它的适配器当中,发现getview方法执行的次数是数据条目的N倍(我这边显示的是4倍,这个倍数值不知道会不会变化),这显然是不科学的!

查阅资料,发现是ListView的布局问题。我把 android:layout_height="wrap_content"高度设置成了wrap_content。而wrap_content值使得ListView没有取到实际的高度,他还要根据计算才能确定,而每一次计算应该会触发listview的渲染,所以就会出现getview的调用次数跟正常情况相比多了好几倍。

解决方法:

  在一般情况下,建议把listiview在布局文件中的高度总是设置为:fill_parent(或者match_parent),这不仅仅是getview的调用次数问题,还涉及到布局的效率。

Android ListView的适配器 Adapter 中GetView方法调用次数大于数据条数的问题