listview优化
1.复用convertView减少内存消耗—->convertView进行判断是否为空,不为空的时候,直接重新使用。为空的时候给他一个布局
2.减少查找id的次数—–>定义一个ViewHolder 存储控件,然后与convertView绑定起来
对于以上的两条如果说你能在项目中用到并且将Viewholder抽取到一个单独的类中进行复用,面试官对你看法会有所提高的。
继续吧 如果对于listview 数据量比较大的话 以上操作还是会出点问题的 比如图片处理 这一点 在下一节了,面试你也可以直接联合图片压缩 缓存进行显示 一起说
3.数据量大的情况下,我们可以使用分页加载 ,和分批加载
这时候 你要详细讲一下 分批加载的步骤了不然可能你想拿高工资有点难了。
Listview分批加载的实现思路:
最好的回答就是和你在简历上写的项目一起讲。
① 实现OnscrollLisTener 接口重写 OnScrollStateChanged和OnScroll方法,使用OnScroll进行滑动 ,检查是否有数据,如果有就addFooterView添加到adapter 记住刷一下如果没有了就把自定义的那个footer去掉,使用OnScrollStateChanged可以检测是否滚到最后一行,且停止滚动加载数据
异步任务加载网络数据
1.先从内存缓存中获取图片显示
2.获取不到再从sd中获取,
3.在获取不到就从网络中下载图片并保存在SD中,同时加入内存并且显示。