Adapter:
它在ListView和数据源之间起到桥梁的作用,避免listview和数据源直接接触,而导致因为数据源的复杂性使listview显得臃肿。
Adapter,适配器,把复杂的数据源适配给listview,很容易联想到适配器模式。
增加优化一:convertView的使用,主要优化加载布局问题
1.listivew每次滚动都会调用gitview()方法,所以优化gitview是重中之重。如果没有缓存就加载布局,如果有缓存就直接用convertView对象。所以这样就不用滑动listview的时候
调用getView()方法每次都去加载布局了(如果改布局已经加载)。
增加优化二:内部类ViewHolder的使用。
主要优化getView方法中每次回调用findviewByID()方法来获取一次控件的代码。
新增加内部类ViewHolder,用于对控件的实力存储进行缓存。convertView为空时,viewHolder会将空间的实力存放在ViewHolder里,然后用setTag方法讲viewHolder对象存储在view里。
convertView不为空时,用getTag方法获取viewHolder对象.
listview的许多view呈现在Ui上,这样的View对我们来说是可见的,可以称为OnScreen的view(也为ActionView)。
view被上滚移除屏幕,这样的view称为offScreenView(也称为ScrapView)。
然后ScrapView会被listview删除,而RecycleView会将这部分保存。
而listview底部需要显示的view会从RecycleBin里面取出一个ScrapView。
将其作为convertView参数传递过去,
从而达到View复用的目的,这样就不必在Adapter的getView方法中执行LayoutInflater.inflate()方法了