显示 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 没有暂停调用片段,因此该片段也不应添加到返回堆栈。这也解决了从对话框中按回时调用片段重复的问题。
当我在我的应用程序中显示 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 没有暂停调用片段,因此该片段也不应添加到返回堆栈。这也解决了从对话框中按回时调用片段重复的问题。