美文网首页
2018-05-13

2018-05-13

作者: 小妮詪拽 | 来源:发表于2018-05-13 20:51 被阅读0次

ListView的优化............................................................................................................

不优化

每次都执行getView(),都会执行converterView=View.inflate(R.layout.xxx);

问题:效率低,在快速滑动时会有卡顿,在数据很多时甚至会内存溢出,,

第一层:复用converterView..............................................................................................

if(converterView==null){

converterView=ViewView.inflate(R.layout.xxx);//n+1

}

问题:每次执行getView()都需要执行converterView.findViewByid()得到子View

第二层:使用ViewHolder,减少findViewByid()的次数................................................................

//          1.创建或得到对应当前行的一个Viewholder对象

ViewHolder hole=null;

if(convertView==null){

//              加载布局Item的布局,得到View对象

convertView = View.inflate(MainActivity.this, R.layout.item_array_adapter, null);

hole=new ViewHolder();

hole.findViewById = (ImageView) convertView.findViewById(R.id.imageView1);

hole.view = (TextView) convertView.findViewById(R.id.tv_item_name);

hole.view1 = (TextView) convertView.findViewById(R.id.tv_item_content);

//          将holder对象保存到converterView上

convertView.setTag(hole);

}else{

hole=(ViewHolder)convertView.getTag();

}

//          根据position设置对应的数据

//          得到当行的数据对象

shoinfo shoinfo = data.get(position);

//          得到子View对象

//          给ViewHolder对象的视图设置数据

hole.findViewById.setImageResource(shoinfo.getIncon());

hole.view.setText(shoinfo.getName());

hole.view1.setText(shoinfo.getContent());

return convertView;

问题1:对于互联网联网获取列表数据,如果数据量太大,一次获取出来显示,太慢太耗流量:第四层优化

问题2:对于联网获取数据,如果包含图片数据,每次都请求获取显示,太慢太流量,的三层优化

第三层:图片三级缓存处理(LRU).........................................................................................

1,内存缓存 优先加载,速度最快

2,本地缓存 次优先加载,速度稍快

3,网络缓存 最后加载,速度由网络速度(浪费流量)

第四层:对数据列表进行分页加载显示..........................................................................

1自己做:通过scroll监听

listView.setonScrolllistener(scrollListener),当到达底部时,加载下一页数据列表并显示

2使用第三方开源框架:Android-pullTorefresh或其他

相关文章

网友评论

      本文标题:2018-05-13

      本文链接:https://www.haomeiwen.com/subject/msfrdftx.html