当前位置:编程学习 > wap >>

求解:listview窗口滚动后,item背景色混乱

我设计的listview列表中,通过改写getview()将前5行的背景色设置为黄色,后面的全为默认色。实际效果为:窗口出现时前5行为黄色,后面的行为默认色。窗口向上滚动后,后面的行应该都是默认色,但实际效果是,后面的行随机出现黄色背景。不解!求解!

实际图:

窗口向下滚动后的效果:

getview()的代码为:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// position为item的序号
View view = null;
if (convertView != null) {
view = convertView;
} else {
view = super.getView(position, convertView, parent);
}
if (position < 5) {
view.setBackgroundResource(R.drawable.goldclient);
}
return super.getView(position, view, parent);
}
恳请指点! --------------------编程问答-------------------- 解决了!
getview()的代码为:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// position为item的序号
View view = null;
if (convertView != null) {
view = convertView;
} else {
view = super.getView(position, convertView, parent);
}
if (position < 5) {
view.setBackgroundResource(R.drawable.goldclient);
}else{
view.setBackgroundResource(R.color.black);
}
return super.getView(position, view, parent);
} --------------------编程问答-------------------- 哈哈,聪明,我刚想跟你说来着,getview默认在加载下面的item的时候是去拿上面已经构造好的item的view的,你上面的那些背景是黄色,下面那些直接那view的item用的实际就是同一个view,背景也就是黄色了 --------------------编程问答-------------------- 谢谢wenyiqingnianiii,我实在当不起“聪明”二字,呵呵 --------------------编程问答-------------------- 看了很多列表滚动的问起 其实都是一个问题 记住list的列表项的view是缓存显示的,是重用的 所以你要差异化显示的时候,一定要记住需要有个条件能够把你想要的列表项精确地筛选出来,然后设置此项的效果,就不会影响到别的列表项了  --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 谢谢haoyizsw,谨记在心!
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,