Android 在操作栏中隐藏菜单选项

Android 在操作栏中隐藏菜单选项,android,android-actionbar,Android,Android Actionbar,我有一个活动有3个片段(不是标签)。我有几个动作条项目,我想隐藏它们时,某个片段是存在的。我该怎么办 我对你的帖子的理解是: @Override public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); MenuItem item3 = menu.findItem(R.id.ID OF MENU); item3.setVisible(false); } 你有3个碎片

我有一个活动有3个片段(不是标签)。我有几个动作条项目,我想隐藏它们时,某个片段是存在的。我该怎么办

我对你的帖子的理解是:

@Override
public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);

    MenuItem item3  = menu.findItem(R.id.ID OF MENU);
    item3.setVisible(false);
}
  • 你有3个碎片
  • 对于3个片段,您有3组不同的actionbar按钮

  • 我的首选方法::
    您还可以找到不想在当前片段中显示的菜单项,并设置它们的可见性

    MenuItem item = menu.findItem(<id>);
    item.setVisible(<true/false>);
    

    您还可以使用不同的方法来处理此问题

    如果要隐藏所有菜单项,只需执行以下操作:

    @Override
    public void onAttach(final Activity activity) {
    
        super.onAttach(activity);
    
        setHasOptionsMenu(true);
    }
    
    @Override
    public void onPrepareOptionsMenu(final Menu menu) {
    
        super.onPrepareOptionsMenu(menu);
    
        menu.clear();//This removes all menu items (no need to know the id of each of them)
    }
    

    显示/隐藏操作栏项;有用的博文:检查片段是否对用户可见:两个问题:1.)您是指活动中的方法还是片段?2.)这适用于一些项目,但如果我有许多项目,我必须将它们设置为false,然后在需要时使它们再次可见。@androidenthusist我在片段中引用它,然后创建菜单项组并切换组的可见性。+1用于此!实际上,只需输入
    返回false
    作为
    onPrepareOptions菜单()中的唯一语句,
    也会删除整个菜单。@11111 61171159459134在“void”函数中如何返回false?@zdd我不知道如何;事实上,
    返回false会删除整个菜单!你试过了吗?@1111161171159459134,我们有一些差距,这个函数在活动中返回boolean,但在片段中返回void,这就是区别。
    
    @Override
    public void onAttach(final Activity activity) {
    
        super.onAttach(activity);
    
        setHasOptionsMenu(true);
    }
    
    @Override
    public void onPrepareOptionsMenu(final Menu menu) {
    
        super.onPrepareOptionsMenu(menu);
    
        menu.clear();//This removes all menu items (no need to know the id of each of them)
    }