在Android开发中必然会用到列表,ListView在运用过程中,在适配器adapter中会使用到ViewHolder,也就是item的复用,那么问题来了,在复杂的item布局中,滑动的时候有时会发生内容错乱。
比如说底部的某个文字内容,发现在滑动到顶部的时候,顶部的item的文字内容就变成了底部的文字,这是什么原因呢???
在笔者做仿微信朋友圈的时候,由于item的布局稍复杂,所以,在滑动的时候出现了内容错乱。
解决办法:
在适配器adapter中,由于评论性的文字某些item有内容,而有些item却没有,这就导致了ListView缓存机制的冲突,误认为item复用时使用了前一个内容。
那就需要在adapter中为每个控件设置初始值,哪怕是没有内容的TextView,也需要TextView.setText(""); 还有就是在ListView中嵌套了GridView,也需要设置初始化了的adapter(哪怕是没有图片需要显示),即GridView.setAdapter(adapter);
总结:避免ListView的item内容错乱,就要为item中每个控价设置值,避免ListView加载缓存造成内容错乱!