ListView的认识

1 安卓中一切控件一切皆View

java中任何对象皆是object对象

ListView 含有滑动条属性

内存溢出 : 当多个对象快速创建很多时 来不及回收导致内存溢出 会崩掉

 2 初步优化:convertView 对象的复用

解析 手机屏幕上可见的条目都为listview的对象 当你下滑的时候从上面消失的Item就会存储在convertView 对象中  后面都是复用前面的对象 最初屏幕显示的对象

为空创建对象 不为null就复用对象

  if (convertView==null){
   // 判断是否为空为空创建对象 不为空复用历史缓存对象
                textView = new TextView(MainActivity.this);
            }else{
                textView= (TextView) convertView;
            }
            textView.setText("ListView"+position);
            return textView;

  3   listView显示数据原理

mvc原理

mode   数据
v      View视图    jsp(javaweb中)
c     controller   severlet(负责吧数据展示在jsp中)

安卓中 
mode 数据
v     View视图

c  adapter


4 listView 中的奇怪现象:
 例如当你要显示6个条目在adapter的getView()方法中打印测试。  把listView的高调为match_parent的时候你打印出六条语句  而你把高调为wrap_content的时候大约打印20条语句。

解释: 当你使用match_parent的时候编译器知道总高度 知道每个listview的高度 可以计算出条目数,当你写成包裹内容 总高度编译器不知道 进行多次校验知道完全显示到屏幕铺满屏幕 显示还是6 但是打印将近20。

优化点:尽量使用match_parent


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容