ListView图片加载缓慢、局部更新失败等问题你遇到了吗?


最近在写一个“下载管理”的模块,页面主要由ListView构成,显示下载的缩略图、进度、下载速度、文件大小等数据。


写完后发现缩略图的加载异常缓慢,而且应该时刻更新的进度条、网速也并没有时刻更新


刚开始以为是局部更新的逻辑写的有问题,查了查并没什么问题,加了行Log也能实时打印进度。


java代码上没问题那我们就去布局上找问题,我发现ListView的宽高设置的是warp_content


这下就找到了原因的所在。



当你把ListView的宽高设置成warp_content时,ListView加载一个条目会多次调用adapter的getView()方法来获取子控件的宽高。

这样既影响性能还会带来一些问题,比如图片加载缓慢、局部更新失败等问题。


当我改成match_parent后,问题就解决了。


对于以上问题,一些对ListView简单的使用,可能看不出有这个问题,但是它却真真切切的存在着,也许这对其也是一个小优化。



对此,我们需要延伸思考。


注意不要在getView方法中做一些特别消耗资源的操作,如果用户快速滑动,会造成严重的问题。如果非做不可,则需要进行优化,比如使用线程池等。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值