在某些情况下,在使用FragmentStatePagerAdapter的 Activity 的onResume()中,我得到了这个信息。使用设备的后退按钮时。不总是。不可复制。
我正在使用最新版本(8)的支持包v4。
已经用Google搜索过,没有找到有效的答案。
在源代码中查找它,将其抛出:FragmentManager.java
@Override
public void putFragment(Bundle bundle, String key, Fragment fragment) {
if (fragment.mIndex < 0) {
throw new IllegalStateException("Fragment " + fragment
+ " is not currently in the FragmentManager");
}
bundle.putInt(key, fragment.mIndex);
}
但是为什么片段索引小于0?
实例化片段的代码:
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch(position) {
case 0:
fragment = MyFragment.newInstance(param1);
break;
case 1:
fragment = MyFragment2.newInstance(param2, param3);
break;
}
return fragment;
}
@Override
public int getCount() {
return 2;
}
最佳答案
如果您的ViewPager布置在一个片段(不是 Activity )中:
mViewPager.setAdapter(new MyFragmentStatePagerAdapter(getChildFragmentManager()));
关于android - FragmentStatePagerAdapter IllegalStateException : <MyFragment> is not currently in the FragmentManager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11296411/