一个奇怪的问题,今天做项目,因为要删减ciewpager数据,有一个要刷新viewpager的操作,但直接调用notifyDataSetChanged()才发现没这么简单,它并不会在界面就给你删除,只会让你无法拉到你删除的界面去,想来应该是notifyDataSetChanged()这个方法在viewpager里出现了问题,经过各种找问题和检查,找到了解决方法,先列出来:
在你的viewpager的适配器内加上以下方法
private int mChildCount = 0;
@Override
public void notifyDataSetChanged() {
mChildCount = getCount();
super.notifyDataSetChanged();
}
@Override
public int getItemPosition(Object object) {
if (mChildCount > 0) {
mChildCount--;
return POSITION_NONE;
}
return super.getItemPosition(object);
}