当前位置: 首页 > 知识库问答 >
问题:

我如何在一个工具栏中为不同的片段有不同的菜单?

柴浩大
2023-03-14

我有一个使用本教程创建的抽屉和滑动选项卡的项目。我正在使用支持库使材料设计可用于较老的android版本。我还使用了toolbar而不是actionbar。我有一个连接到工具栏菜单:

    toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
    toolbar.inflateMenu(R.menu.menu_main);
toolbar.getMenu().findItem(R.id.menuitem).setVisible(false);
supportInvalidateOptionsMenu();

我已经找了好几个星期了,为了有效果。我做错什么了吗?

我如何才能有每个片段的特定菜单?我认为隐藏菜单项可能是更容易实现的选择,但如果你们有任何其他方法来实现,我将不胜感激。

共有1个答案

和光启
2023-03-14

您应该在设置工具栏时调用setSupportActionBar(工具栏)(可能在onCreate中),并在onCreateOptionsMenu(menu menu)方法中像往常一样膨胀菜单。在此方法中,您可以处理不同的菜单,不管是通过隐藏项还是仅仅根据片段膨胀一个不同的菜单。

然后,如您所说,调用supportInvalidateOptionsMenu();当您在片段之间进行更改以重新创建菜单时。

 类似资料:
  • 我有一个工具栏和一个导航抽屉。当我启动应用程序时,会创建工具栏和导航抽屉。当我单击导航抽屉中的项目时,它会启动新的片段并保留相同的工具栏。当我启动特定片段时,我基本上如何向工具栏添加菜单项,例如搜索、添加、编辑?我不希望在程序开始时使用它们,而是动态创建的。还有,我怎样才能点击这些按钮,让它们启动其他片段呢。我希望在一个片段中,与另一个片段中的编辑按钮相比,工具栏中的编辑按钮可以做特定的事情。谢谢

  • 我在中有一个可以膨胀的工具栏。我有一个名为的菜单,它会膨胀,只显示一个图标。 当用户单击打开片段时。我有另一个菜单,它有两个图标。 当我在片段中膨胀friends菜单时,它仍然显示菜单中的图标。 非常感谢您的任何建议,

  • 请给我解释一下。。。我的,它与同步(比如)。活动只有很少的片段,在不同的片段中,我需要使用不同的模式(一种模式是视差,另一种模式是简单)。因此,我认为我应该在每个框架中用AppBar和内容设置协调布局 但我如何替换“新建”上的最后一个工具栏以保存与抽屉的同步?或者这是错误的方式,我需要做一些其他的?

  • 我的应用程序里有标签。每个标签是不同的片段和不同的菜单。下面是我正在使用的布局 现在,对于中的每个片段,我都进一步提到了。我已经覆盖了每个片断中的函数,它首先有,然后调用它的超级构造函数,然后膨胀片断自己的菜单XML。但我得到的结果是这样的- 假设有5个选项卡。第2和第3个选项卡中的viewpager由中的两个片段组成 第一个选项卡没有菜单 第二个选项卡有menu_2(仅用于第二个子片段) 第三个

  • 问题内容: 我试图用来创建我的,以确保我的构建/项目的质量。该项目也需要使用和。一切在我的本地计算机上都可以正常运行,但是现在我正在尝试使环境一致,可重现。当我尝试在新的虚拟机中运行时,会中断一个在本机中正常运行但 不在 新vm中运行的。 我检查了版本,,,(其)一切都是一样的。但是,我的Maven项目在此测试中失败了。 我在这里想念什么?任何想法,建议都会受到赞赏,因为我现在还没有想法,到目前为

  • 当我启动一个实现viewpager的活动时,viewpager创建了各种片段。我想为每个片段使用不同的布局,但问题是viewpager最大只显示两个布局(在1之后的所有剩余片段上显示第二个布局)。 下面是实现viewpager的SwipeActivity的代码: 这是片段的代码