【发布时间】:2012-07-03 00:41:44
【问题描述】:
在 onResume() 的某些情况下,我在使用 FragmentStatePagerAdapter 的活动中得到了这个。使用设备的后退按钮时。不总是。不可重现。
我正在使用支持包 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);
}
但是为什么fragment的索引
实例化片段的代码:
@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;
}
【问题讨论】:
-
你是从你的代码中调用 FragmentStatePagerAdapter.instantiateItem() 吗? stackoverflow.com/a/20210413/204480