- ListView是一个显示一些滑动的列表项的视图组,列表项自动插入到列表中,通过Adapter把数组或数据库中的内容显示出来,并且把每一项结果转换成一个能放在列表里的View
- Adapter的作用是把date显示到UI当中,它是date和UI的一个中介,便于理解,它们之间的关系图如下:
- ListView的优化:
-
- 保持滑动屏幕流畅的关键就是不要在UI线程(主线程)里有大量的运算,把UI线程中耗时的操作放到其他线程中去
- 使用ListView滑动会多次使用到findViewById(),这会降低性能,如果使用Adapter并且重写了getView()方法,如果一个项目有多个xxxAdapter类,你都要在其中去更新getView()里面的东西,而避免频繁调用findViewById()的方法之一就是使用ViewHolder(ViewHolder此处理解为一种设计模式)
- 使用ViewHolder的原理:
-
- 创建一个类存储你将使用的视图:
- 在layout的类中生成一个ViewHolder对象:
- 创建一个类存储你将使用的视图:
- 一个ViewHolder对象存储了他的layout下的每个View,这样就不用频繁调用findViewById()方法,可以把ViewHolder理解为存储视图的一个存储器,如果有需要的时候就用它,而不是每次通过findViewById()去在布局文件layout中找View