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

时间:2014-07-02 18:26:25

标签: android android-fragments menu android-menu

我尝试在一个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);
}

3 个答案:

答案 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);              
        }