Android的listView的一级优化

来源:互联网 发布:知乎 车枪球 编辑:程序博客网 时间:2024/05/16 03:18

以下图片均截图来自课工厂,里面的解释是自己在自学时候的一些理解,如果有错请指出~

使用convertView代替直接反射得到的view,解决每次都反射带来的时间问题

原来:



优化:



原理:滑出来的进行渲染,不显示的等会渲染

开始需要反射的item数量是屏幕可以显示的 item+1,为什么是+1呢?因为你开始比如是4个,当你上滑的时候第五个有可能只显示了一半,而此时第一个也没被影藏,所以没进入缓冲池中,而第五个就不能从缓冲池中拿到对象,所以它不可能上滑一半后显示空白,一半也要显示内容的,否则用户体验太差了。

再简单点,比如有一个水房里面有4个水龙头,100个人排队去打水,以前是有几个人就要有几个水盆,家比较远!而现在他们打水的地方离着家很近,就几步路,并且后面95个人(为啥95个呢,后面会说)比较穷哈没有盆,前面4个打完水后需要按照顺序出来,第1个人出来后立马把水放在家里的桶里了,而此时第2个人还没从屋里出来呢,屋比较长哈!然后第1个人他和第6个人说(为啥是第6个而不是第5个呢?因为排队嘛,第1个人出去后,正好有个坑啊,第5个此时已经进去了!!!),你用我的盆吧,第6个当然就欣然接受了!然后第2个人再给第7个人!.............以此类推,不管多少人总是那5个盆!

但是为啥是 item+1?就是为啥第1个人不直接把盆给第5个人呢?因为第1个人出来后,第5个人就要进去了,第1个人不可能立马就去家把水放入桶里!




0 0
原创粉丝点击