在使用viewpager的过程中,有时候会动态的改变content,包括数量,有时候就会碰到这个问题:
java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 0, found: 1
这个问题的出现的直接原因就是viewpager的populate方法里面,mAdapter.getCount的值和之前记录的mExpectedAdapterCount值不一致。
而这个不一致是因为getcount中大家的内容list变化了,而还没来得及调用notifydatasetChanged。
具体可以参考http://www.cnblogs.com/dzboy/p/3629049.html
但是有时候会有各种原因而不能及时的调用notifydatasetChanged,这个时候就会出错,而有网友自己想了一种不是办法的办法,可以借鉴一下。
@Override
public int getCount() {
if (doNotifyDataSetChangedOnce) {
doNotifyDataSetChangedOnce = false;
notifyDataSetChanged();
}
return actionBar.getTabCount();
}