我有一个项目使用了我使用this教程创建的抽屉和滑动选项卡。我正在使用支持库使Material Design可用于较旧的Android版本。我也使用ToolBar
代替ActionBar
。我有一个附在该ToolBar上的菜单:
toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
toolbar.inflateMenu(R.menu.menu_main);
我正在努力的是为每个片段提供特定的菜单。我尝试了许多其他类似问题的答案,例如this和this无效。大多数人建议these methods的实施,但它们似乎只适用于ActionBar
,在我的情况下,我有android.support.v7.widget.Toolbar
。
我也尝试过使用
toolbar.getMenu().findItem(R.id.menuitem).setVisible(false);
supportInvalidateOptionsMenu();
但它也行不通。在这种情况下,我的菜单就会消失。
我一直在寻找和挣扎这几个星期来利用。我做错了吗?
如何为每个片段设置特定菜单?我认为隐藏菜单项可能是实现这一目标的更容易的选择,但如果你们有任何其他方式来实现这一点,我将不胜感激。
答案 0 :(得分:2)
您应该在设置工具栏(可能在onCreate中)时调用setSupportActionBar(工具栏)并像往常一样在onCreateOptionsMenu(菜单菜单)方法中对菜单进行充气。 在这种方法中,您可以处理不同的菜单,无论是隐藏项目还是仅根据片段膨胀不同的菜单。
然后,如你所说,调用supportInvalidateOptionsMenu();当您在片段之间切换以重新创建菜单时。