ListView优化
来源:互联网 发布:java整形转化为字符串 编辑:程序博客网 时间:2024/06/10 17:04
第一: 重用convertView
重用了convertView,减少了内存的消耗。通过判断convertView是否为null,是的话就需要产生一个视图出来,然后给这个视图数据,最后将这个视图返回给底层,呈现给用户。
第二、通常有一个内部类ViewHolder
class ViewHolder,这个ViewHolder,用来标识view中一些控件,方便进行一些事件相应操作的设置,比如onClick等等,这样可以不用每次都要findViewById了,减少了性能的消耗。
第三、ListView 布局文件写高度match_parent,写warp_content至少要测量4次,严重拖慢效率。
特别注意:
这里设置ViewHolder为static,也就是静态的,静态类只会在第一次加载时会耗费比较长时间,但是后面就可以很好帮助加载,同时保证了内存中只有一个ViewHolder,节省了内存的开销。
可以从三个方面来优化:
- 异步加载item
显示在ListView上的每一个item,都是通过getView初始化的。因此,不要再getView中执行耗时操作。例如,图片的加载,无论是从网络获取,还是本地扫描,最好都通过异步的方式处理。 - 控制异步任务的执行频率 。
例如,当用户刻意频繁上下滑动,或者快速下滑的时候,会产生很多个异步任务,这会造成线程池的拥堵,同时,这些任务很多完成后带来的UI更新,是没有意义的,因此,可以在列表滑动的时候停止异步任务的开启(比如图片的加载)。如何具体实现呢,可以给ListView或者GridView设置setOnScrollListener判断列表是否处于滑动状态,如果滑动,则停止异步任务开启。 - 开启硬件加速
通过设置 Android:hardwareAccelerated=”true” 即可为Activity开启硬件加速
1 0
- ListView优化
- listView优化
- ListView优化
- ListView优化
- ListView优化
- ListView优化
- listView优化
- listview 优化
- ListView优化
- listView优化
- ListView 优化
- ListVIew优化
- ListView优化
- ListView优化
- listview优化
- Listview 优化
- ListView优化
- ListView 优化
- 杭电5655 CA Loves Stick
- Android之ScrollView
- 单链表的应用2(单向循环链表变双向循环链表)
- R or Python,为了处理数据到底该学哪个?
- Ant入门学习资料
- ListView优化
- UICollectionView用法补充(照片轮播墙)
- JavaScript基础——数组方法使用
- Android Studio删除无用的资源文件
- 递归(斐波那契数列)
- android----登陆界面
- 在php中使用redis cluster 集群
- 搭建Android开发环境和构建第一个Android程序(Android Studio版)
- “*** error 65: access violation at 0x0000000C : no 'read' permission”错误的解决