我有一个非常奇怪的错误,我无法弄清楚。
我有 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();
问题是这样的,如果我从 Fragment A 转到 Fragment B 并且回击按钮一切正常。我可以随意多次这样做。
然后,当我去 A->B 然后切换 B 几次,A->(B,C,D) 并回击,我仍然很好,我回到 A。但是,当我完成上述,然后我尝试再做一次。我再次从 A -> B (不重新启动活动)然后将 B 切换到 C、D 然后回击,片段 A 不再存在并且我得到空指针异常。
有人可以帮帮我吗,这让我发疯了。
我总是getFragmentManager().executePendingTransactions();
在尝试引用 Fragment A 之前使用。
谢谢!