第三章 软件也要拼脸蛋,UI开发的点点滴滴——总结

来源:互联网 发布:常见的网络攻击技术 编辑:程序博客网 时间:2024/04/28 08:25

本章节主要详解Android UI相关的知识

提升ListView的运行效率

直接使用系统内置的ArrayAdapter的运行效率很低,因为ArrayAdapter的getView()方法中每次都将布局重新加载了一遍,当ListView快速滚动式就会成为性能的瓶颈

1)ArrayAdapter中的getView()方法中有一个参数(View)convertView,这个参数用于将之前加载好的布局进行缓存,便于之后进行重用

@Override

Public View getView(int position, ViewconvertView, ViewGrop parent){

         Viewview;

         If(convertView!= null){

                   view= layoutInflater.from(getContext()).inflate(resourceId, null);

}else{

         view = convertView;

}

}

——优点:不会重复加载布局

         缺点:每次在getView()方法中还是会调用View的findViewById()方法来获取一次控件的实例

 

2)借助一个ViewHolder进行优化

         新增一个内部类ViewHolder,用于对控件的实例进行缓存

         当convertView为空时,创建一个ViewHolder对象,并将控件的实例都存放在ViewHolder里,然后调用View的setTag()方法,将ViewHolder重新取出

——所有控件的实例都缓存在了ViewHolder里,就没有必要每次都通过findViewById()方法来获取控件实例了。

 

进过这两步,ListView已经基本上优化完成了。

 

0 0
原创粉丝点击