46黑名单显示的bug---(优化ListView)convertView复用带来的问题

是这种需求:

在黑名单的列表中前三个显示特殊的颜色,后面的列表显示其它的颜色,如图:

46黑名单显示的bug---(优化ListView)convertView复用带来的问题

可是当翻到第二屏的时候。我们发现了:

46黑名单显示的bug---(优化ListView)convertView复用带来的问题

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmZ1ZHVvX2xvdmVpdA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

哇,这样是怎么回事呢?根源在于convertView的复用带来的问题。

我本来的代码例如以下:

46黑名单显示的bug---(优化ListView)convertView复用带来的问题

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmZ1ZHVvX2xvdmVpdA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

改动为例如以下:

46黑名单显示的bug---(优化ListView)convertView复用带来的问题

ListView的Item可能带有其它控件,比方CheckBox,带来点击状态的问题。

后序会在IM项目中具体解释。

上一篇:转-ListView的性能优化之convertView和viewHolder


下一篇:UIImage转换UIColor内存会莫名增大可以试试另一种方法