我在一些使用FragmentStatePagerAdapter的活动的onResume()中获得了这个.使用设备的后退按钮时.不总是.不可重复.
我正在使用支持包v4,最新修订版(8).
已经用谷歌搜索过,没有成功找到有用的答案.
在源代码中,它被抛出: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);
}
Run Code Online (Sandbox Code Playgroud)
但是为什么片段的索引<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;
}
Run Code Online (Sandbox Code Playgroud)
我也无法通过源调试,因为支持包不允许我附加源,出于某种原因......但这是一个不同的问题......