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

本文探讨了在使用ListView时遇到的性能问题,即getView方法被异常多次调用的现象,并给出了合理的解释及解决方案,包括调整ListView的高度设置以及推荐使用addHeaderView和addFooterView方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

情况描述:

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

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

解决方法:

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

另外,在listView中的addHeaderView(View) 和 addFooterView(View)可以让本来更多的组合放在一起进行滑动。比如:正常情况下,一个布局里面,上面有很多控件,中间有ListView,下面也有很多控件,想实现整体滑动,使用listView的上面两个方法最为合适,不建议使用ScrollView。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值