显示 DialogFragment 时清除菜单(和操作按钮)

Menu (and actionbuttons) cleared when showing DialogFragment

当我在我的应用程序中显示 DialogFragment 时,Menu (ActionBar) 被清除并且在关闭时不会重新出现。我希望菜单在显示 DialogFragment 时保持不变(因为对话框后面的所有内容无论如何都被禁用)但至少在对话框关闭时重新出现...

Menu是从我的 Fragment 中以标准方式添加的:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.clear();
    inflater.inflate(R.menu.menu_settings, menu);
}

并且对话框片段也以非常标准的方式显示。对话片段不包含任何奇怪的东西(也没有 Menu 代码)。

FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.addToBackStack(null);
SingleSettingDialogFragment dialog = SingleSettingDialogFragment.newInstance(...);
dialog.show(transaction, "Single"); 

有人知道为什么会发生这种情况或如何解决吗?

我很惊讶似乎没有人遇到过这个问题。问题是 transaction.addToBackStack(null);。由于 DialogFragments 没有暂停调用片段,因此该片段也不应添加到返回堆栈。这也解决了从对话框中按回时调用片段重复的问题。