试图隐藏/禁用片段整个菜单(溢)片段、菜单

2023-09-06 08:16:35 作者:浅挚绊离兮

我一直不成功试图隐藏或在一个片段禁用溢出菜单

我已经尝试设置 setHasOptionsMenu(假)没有成功,然后我试图 setHasOptionsMenu(真)和试图用像下面一个空的菜单充气。

尝试都没有为我工作。

我如何隐藏或一个片段禁用选项/溢出菜单仅??

在此先感谢!

片段

  @覆盖公共无效的onCreate(捆绑savedInstanceState){    super.onCreate(savedInstanceState);    setHasOptionsMenu(真);}@覆盖公共无效onCreateOptionsMenu(菜单菜单,MenuInflater气筒){    //充气菜单;如果是present这增加了项目操作栏。    inflater.inflate(R.menu.empty,菜单);    super.onCreateOptionsMenu(菜单,充气器);} 

解决方案

想出如何做到这一点。只需要设置我不希望看到的菜单项。就我而言,我把所有的人都看不到,而且完全删除溢出菜单。

另外别忘了你有 setHasOptionsMenu(真)的onCreate ,所以它知道叫 onCreateOptionsMenu

  @覆盖公共无效onCreateOptionsMenu(菜单菜单,MenuInflater气筒){    如果(菜单!= NULL){        menu.findItem(R.id.menu_settings).setVisible(假);        menu.findItem(R.id.menu_leave_feedback).setVisible(假);        menu.findItem(R.id.menu_shop).setVisible(假);    }} 
怎么禁用开始菜单

I have been unsuccessful in trying to hide or disable the overflow menu in one fragment.

I have tried setting setHasOptionsMenu(false) with no success, and then I tried setHasOptionsMenu(true) and tried inflating with an empty menu like below.

Both attempts do not work for me.

How do I hide or disable the options/overflow menu in one fragment only??

Thanks in advance!

Fragment

@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);
}

解决方案

Figured out how to do it. Just need to set the menu items I don't want visible. In my case, I set all of them not visible and that removed the overflow menu entirely.

Also don't forget you have to setHasOptionsMenu(true) in your onCreate so it knows to call 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);
    }
}