我尝试在一个overflow menu
中隐藏或停用fragment
时未成功。
我尝试设置setHasOptionsMenu(false)
但没有成功,然后我尝试了setHasOptionsMenu(true)
并尝试使用如下的空菜单进行充气。
这两种尝试对我都不起作用。
如何仅在一个片段中隐藏或禁用选项/溢出菜单?
提前致谢!
片段
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Inflate the menu; this adds items to the action bar if it is present.
inflater.inflate(R.menu.empty, menu);
super.onCreateOptionsMenu(menu, inflater);
}
答案 0 :(得分:2)
想出怎么做。只需要设置我不想要的菜单项。在我的情况下,我将所有这些设置都不可见,并完全删除了溢出菜单。
另外请勿忘记setHasOptionsMenu(true)
中的onCreate
,以便致电onCreateOptionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
if (menu != null) {
menu.findItem(R.id.menu_settings).setVisible(false);
menu.findItem(R.id.menu_leave_feedback).setVisible(false);
menu.findItem(R.id.menu_shop).setVisible(false);
}
}
答案 1 :(得分:2)
我知道这个答案很晚,但我想分享一下
在Fragment onCreate方法中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
在Fragment onCreateOptionsMenu()方法中:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
}
答案 2 :(得分:1)
setHasOptionsMenu(true)
在OnCreate()和中
@Override
public void onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
menu.findItem(R.id.xxx).setVisible(false);
menu.findItem(R.id.yyy).setVisible(false);
}