0
点赞
收藏
分享

微信扫一扫

刷新ConvenientBanner明明调用了notifyDataSetChanged还是报错

一叶随风_c94d 2022-04-20 阅读 39

在做购买功能时,购买成功了,需要回到这个页面,重新刷一下数据和界面,但是每次一到convientbanner的初始化时就会出问题,一调用这个语句就会闪退

报下面这个错

java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's
contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 
600, found: 1200 Pager id: com.example.mrygl:id/cbLoopViewPager Pager class: class 
com.bigkoo.convenientbanner.view.CBLoopViewPager Problematic adapter: class com.bigkoo.convenientbanner.adapter.CBPageAdapter

说我没有调用notifyDataSetChanged方法,但是我的init方法中明显调用了这个方法

我在调试的过程中,发现程序刷新界面结束后不闪退了,也不报错了,但是一回到正式运行阶段,又开始闪退,报错。搜了好多个方法也没解决我的问题,我就思考这里会不会是一个多线程问题,进入notifyDataSetChanged方法里面观察

这里有一个synchronized关键字,应该是和多线程有关没跑了,在某个不知名的线程收到我要改变数据集的消息之前,主线程就已经调用了setPage方法,于是,我就在调用setPage方法之前,让主线程休息个100毫秒等一等,问题暂时解决

 不过问题是否真的是这个原因我也不太清楚,希望大牛可以解决我的疑问

举报

相关推荐

0 条评论