对于ListView中自定义Adapter出现的控件显示错乱现象的解决方案!

对于自定义Adapter中,使用ViewHolder这样的写法应该是绝大多数人的选择,毕竟为了ListView的平滑感考虑。但是,恼人的是,这样的写法会造成listView在滑动中,会出现控件显示错乱的情况。

我的解决方案是这样的,在else中添加一个方法,使viewholder中的控件状态恢复默认值即可。

 1 final ViewHolder viewHolder;
 2 if (convertView == null) {
 3 
 4     ...
 5 
 6     convertView.setTag(viewHolder);
 7 } else {
 8     viewHolder = (ViewHolder) convertView.getTag();
 9     resetViewHolder(viewHolder);
10 }
11 
12     ...
1 private void resetViewHolder(ViewHolder vh) {
2         vh.btn_play.setVisibility(View.GONE);
3         vh.iv_avatar.setVisibility(View.GONE);
4     }

 

展开阅读全文

没有更多推荐了,返回首页