在执行某些操作后从 fragment 2 返回到 fragment 1 后,我需要删除膨胀的菜单。
我在生成popBackStack
后清除了菜单,但仍然无法删除菜单项。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
if (savedItemsExist())
inflater.inflate(R.menu.menu_saved_filters, menu);
else
{
Log.i(TAG + " onCreateOptionsMenu", " going to delete");
menu.clear();
}
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
menu.clear();
if (savedItemsExist())
getActivity().getMenuInflater().inflate(R.menu.menu_saved_filters, menu);
else{
menu.clear();
}
super.onPrepareOptionsMenu(menu);
}
最佳答案
如果您有与 Fragment
的生命周期相关联的菜单项,您应该改为使用 setHasOptionsMenu(true)在您的 Fragment
上,然后覆盖 onCreateOptionsMenu()在 Fragment 中,扩充您的 Fragment 菜单。
关于安卓 : Menu items can't be removed in the fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30418294/