1、
Java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 6, found: 3 Pager id: ...
原因:
在调用 mAdapter.notifyDataSetChanged 之前,先调用了 viewPager.setOffscreenPageLimit 方法
此方法会调用 ViewPager 的 populate(); 方法,就是在这里出现了问题:Adapter.getCount() 已经改变,而 mExpectedAdapterCount 由于还没有调用 notifyDataSetChanged 所以没有更新。所以抛出异常。
解决:
先调用 notifyDataSetChanged, 再调用 viewPager.setOffscreenPageLimit
2、数据初始化完成之后 ,修改数据 notifyDataSetChanged 无效、
解决 :需要修改PagerAdapter 中 getItemPosition
@Override
public int getItemPosition(Object object) {
if (isChange) {
return POSITION_NONE; //需要数据重新加载
} else {
return POSITION_UNCHANGED; //初始化
}
}