对于自定义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 }
本文介绍了一种解决自定义Adapter中ListView滑动时出现控件错乱的方法。通过在ViewHolder模式下,对复用视图的状态进行重置,确保了ListView在滑动过程中的平滑体验。
735

被折叠的 条评论
为什么被折叠?



