if (mVpEbooks.getAdapter() != null) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Bundle bundle = new Bundle();
int index = mVpEbooks.getAdapter().getCount();
String key = "index";
while (index >= 0) {
bundle.putInt(key, index);
ft.remove(fm.getFragment(bundle, key));
index--;
}
ft.commit();
}
或者
//先保证ViewPager之前已设置过Adapter,这样才有可能存在缓存
if (mContentVp.getAdapter() != null) {
//获取FragmentManager实现类的class对象,这里指的就是FragmentManagerImpl
Class<? extends FragmentManager> aClass = getChildFragmentManager().getClass();
try {
//1.获取其mAdded字段
Field f = aClass.getDeclaredField("mAdded");
f.setAccessible(true);
//强转成ArrayList
ArrayList<Fragment> list = (ArrayList) f.get(getChildFragmentManager());
//清空缓存
list.clear();
//2.获取mActive字段
f = aClass.getDeclaredField("mActive");
f.setAccessible(true);
//强转成SparseArray
SparseArray<Fragment> array = (SparseArray) f.get(getChildFragmentManager());
//清空缓存
array.clear();
} catch (Exception e) {
e.printStackTrace();
}
}
//再次设置ViewPager的Adapter
mContentVp.setAdapter(new PageAdapter(getChildFragmentManager()));