【发布时间】:2013-06-12 01:05:45
【问题描述】:
我有一个非常奇怪的错误,我无法弄清楚。
我有 1 个主要片段和许多次要片段。 A->(B,C,D,E,F) 其中 Fragment A 应始终堆叠在 backstack 上,但 Fragment B,C,D,E 应进出变化。
我使用这些代码行来做到这一点:
getFragmentManager().executePendingTransactions();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
MyFragment mListFragment = new MyFragment();
transaction.replace(R.id.listFragmentPlaceHold, mListFragment, FRAGMENT_TAG);
if(getFragmentManager().getBackStackEntryCount() == 0)
transaction.addToBackStack(null);
transaction.commit();
问题是这样的,如果我从片段 A 转到片段 B 并且回击按钮一切正常。我可以随意多次这样做。
然后,当我去 A->B 然后切换 B 几次,A->(B,C,D) 并回击,我仍然很好,我回到 A。但是,当我有完成了上述操作,然后我尝试再做一次。我再次从 A -> B (不重新启动活动)然后将 B 切换到 C、D 然后回击,片段 A 不再存在并且我得到空指针异常。
谁能帮帮我,这让我发疯了。
在尝试引用片段 A 之前,我总是使用 getFragmentManager().executePendingTransactions();。
谢谢!
【问题讨论】:
-
问题可能与this 类似,但他们的解决方案没有帮助。