listview 优化

第1层:复用convertView
if(convertView==null){convertView=View.inflate(R.layout.XXX); //n+1}问题: 每次执行getview()都需要执行convertView.findViewByid()得到子view
第二层:使用ViewHolder,减少findViewByid()的次数 减到n+1次ViewHolder holder=null;if(convertView==null){convertView=View.inflate(R.layout.XXX); //n+1holder=new ViewHolder();holder.imageView=(ImageView)convertView.findViewById(xxx);holder.textView=(TextView)convertView.findViewById(yyy);convertView.setTag(holder);}else{
holder=(ViewHolder)convertView.getTag();}
person p= data.get(position);//之前创建的类holder.imageView.setImageResource(p.getIco());holder.textView.setText(p.getName());
static class ViewHolder(){ImageView imageView;TextView textView;}
第三层:图片三级缓存处理(LRu算法)1.内存缓存,优先加载,速度最快2.本地缓存,次优先加载。速度稍快3.网络缓存,最后加载,速度由网络速度决定(浪费流量)
第4层:对数据列表进行分页加载显示1.自己做:通过Scroll监听listView。setOnScrollListener(scrollListenter),当到达底部时加载下一页列表数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值