android listview用adapter.notifyDataSetChanged()无法刷新每项的图标

http://blog.csdn.net/caizhegnhao/article/details/41318575

今天在开发中遇到一个很奇怪的listview的问题。

这个问题情景是我的应用需要做一个无图模式,然后在无图修改为有图时需要全部刷新加载图片,我做的思路就是全部activity都设一个广播监听器,监听到这个选项变化时刷新所有有图片的控件,其中有很多listview是有icon的,然后其他数据较多的listview都能刷新,就是有两种listview刷新不了,这两种listview都只是四五个数据,两种listview分列在一个viewpager的两个子页中。如果这个viewpager显示了其中一个子页,那这个子页下面的listview能刷新的了icon,但是没有被选择那个子页就不能加载icon。  刷新时用adapter.notifyDataSetChanged(),找了很久原因都找不到,感觉是android优化机制,最后换一种思路,用强制刷新的方法刷新,用listView.invalidate();还是不行,换了 listView.invalidateViews() 这个方法就可以了。感觉很奇怪,

有空再认真找下原因,把方法写出来,免得遇到同样错误的人走太多弯路。

上一篇:Chrome Stylist 插件 (CSS备份)


下一篇:【Android UI设计与开发】7.底部菜单栏(四)PopupWindow 实现显示仿腾讯新闻底部弹出菜单