我知道这听起来像是FragmentStatePagerAdapter IllegalStateException: <MyFragment> 当前不在 FragmentManager 中的副本, 但他的解决方案与我的情况无关。
我很少遇到以下崩溃:
java.lang.RuntimeException:无法暂停活动 {MyActivity}:
...
引起:java.lang.IllegalStateException: Fragment MyFragment {40648258 id=0x7f070051} 当前不在 android.support.v4.app.FragmentManagerImpl.putFragment(MT:516) 的 FragmentManager 中 android.support.v4.app.FragmentStatePagerAdapter .saveState(MT:185) 在 android.support.v4.view.ViewPager.onSaveInstanceState(MT:881)
...
在 android.view.View.saveHierarchyState(View.java:6238) 在 com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1522) 在 android.app.Activity.onSaveInstanceState(Activity.java:1138 ) 在 android.support.v4.app.FragmentActivity.onSaveInstanceState(MT:480) 在 MyActivity.onSaveInstanceState(MT:336)
这似乎是我无法理解的奇怪代码FragmentStatePagerAdapter
:
for (int i=0; i<mFragments.size(); i++) {
Fragment f = mFragments.get(i);
if (f != null) {
if (state == null) {
state = new Bundle();
}
String key = "f" + i;
mFragmentManager.putFragment(state, key, f);
}
}
看起来适配器从我的位置Fragment
获取mFragments
但无法将其状态添加到FragmentManager
.
我找不到任何方法在我的测试设备上重新创建它,只从一些用户那里收到。
我正在使用支持包 v4。
有什么帮助吗?谢谢。