关于ListView之关于缓存的一些看法

假如你的项目中出现了,在上下滑动时。有一些控件在不停的变化,那么我可以告诉你这是因为缓存所引起的.

那么ListView的缓存是什么?

在我看来这是一个很棒的效果,就跟整个Android系统一样,当你Android手机的内存在消耗的时候并不一定代表手机的运行速度会变慢。这是因为Android自带的缓存,这样可以保证这个app在被重新打开的时候,界面可以立马去恢复。不至于每次进入app的时候还要去等很长时候,等待app的加载。这是题外话啊

ListView只会缓存当前所展示的item。当用户在滑动的时候会不停的进行缓存,清除缓存的这个过程。打个比方{1,2,3,4}这里有四个数字,那么当向上滑动的时候那么就会变成{2,3,4,5}。将1清除掉,将5缓存。反之向下滑动也是一样

那么该如何避免在ListView缓存过程中 控件 位置 错乱的变化呢?

1:将ListView的缓存关闭,毫无疑问这样做就相当与丢掉了Android自带的优势。

2:在Adapter中getView方法进行控制

如何控制?

因为大家在getView方法中一般都是需要对一些值进行判断,然后展示出不同的效果。那么我就用这个if来为大家演示

错误的if:   

if(postion%2==0){

view.setText("0");

}

这样书写得到的结果是什么?view 的值永远都会是0,这也就是大家之所以会 控件位置错乱的根本原因

只要大家在判断的同时加上else就ok,像这样:

if(postion%2==0){

view.setText("0");

}else{

view.setText("1");

}

可能说的有点怪,原谅lz的文采


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值