菜鸟进场,方圆十里,寸草不生
今天遇到一个问题,很是奇葩,不知道是不是与我引入的插件有什么冲突,反正问题就是出现了。
问题描述:初始化适配之后,将数据改变了,调用notifyDataSetChanged()方法,页面不刷新,但是滑动屏幕后,又刷新了,但是不主动刷新。最开始以为是我引入的智能刷新控件导致的这个问题(虽然以前没遇到过),于是我把控件暂时注释了,再试,由于数据少,现在屏幕不能滑动了,但是还是不刷新,点击屏幕两次又可以刷出来。
解决办法:那从现象可以看出来,能够确保的就是数据肯定刷新了,只是页面没有进行刷新,我尝试了多种方法,比如数据改变了之后重新设置适配器,延迟调用notifyDataSetChanged()方法等,都没有用。然后就想着能不能重新绘制这个listview呢,尝试调用oncreat()方法,这样虽然能够实现想要的效果,但是肯定是不行的,于是在网上找啊找,终于发现一个文章:https://blog.csdn.net/q610098308/article/details/52227250
结论:在数据加载完成之后调用 listview.invalidate()