职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 755|回复: 9

ListView 居然会延迟加载。。

[复制链接]
ksdal 发表于 2011-6-14 13:54 | 显示全部楼层 |阅读模式
我是刚接触 Android 的新手,之前做过一年的EE开发,前两天在做一个 ListView 显示的效果时,居然发现它居然有延迟加载的功能,并不是一次性就将 ListView 中间的内容一次性加入,而是根据当前 ListView 的总元素个数进行加载,每次加载调用的是 getView() 方法,也就是说当前的总数如果超过了屏幕所能显示的总数时,则不会加载另外的,只有当滚动条下拉的时候才会继续加载其他的,并且之前的资源会被回收,这样确实是提高了性能。
可能有些细节说的不好,欢迎大家拍砖。

爱车车 发表于 2011-6-14 13:54 | 显示全部楼层
哎 居然没人共同探讨  要下班了 。。。。

曾经的小孩 发表于 2011-6-14 13:54 | 显示全部楼层
要是如你所说的话,那么多实现ListView动态加载内容的开发者不都是傻瓜了吗。

月上萧萧 发表于 2011-6-14 13:54 | 显示全部楼层
如楼主所言,是对的。
当元素有好多个,不会全部加载。
getView的部分仅仅是显示的部分(包括最后一项仅显示一半的情况)
但是,拖动的时候加载得相当快的。内部一定有机制,或许已经缓存了的

曾经的小孩 发表于 2011-6-14 13:55 | 显示全部楼层
有好处也有不好,这样每次显示都不需要重新绘制布局,但是如果你需要显示不同的布局呢?这时重写getview就要每次都重新画layout
滚动起来性能很差,哪位有比较好的办法解决这个问题?

爱车车 发表于 2011-6-14 13:55 | 显示全部楼层
其实这里并不算延迟加载,比如有100行记录,一屏幕只能显示10条记录,那么ListView就只创建10个View,当你滚动时 他会把这十个View里面的数据更新成对应的索引的数据,相关帖子:
http://www.iteye.com/topic/971782

江南枫 发表于 2011-6-14 13:55 | 显示全部楼层
其实我也是才开始接触 Android ,在项目中用到了 ListView ,感觉 Google 优化的确实不错,和大家交流一下 。。

秋秋 发表于 2011-6-14 13:55 | 显示全部楼层
这不是什么新技术了 iphone里面也有类似的优化

爱车车 发表于 2011-6-14 13:55 | 显示全部楼层
List 省了不少开发者的劲, 通过 Adapter , 可以很灵活的实现各种界面.

yoyo 发表于 2011-6-14 13:55 | 显示全部楼层
是有的,别大惊小怪的。


您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-18 21:21 , Processed in 0.145128 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表