在我的应用程序中,当我点击标题时,我需要更改navigationView的菜单
First state
Second state
我想让我的navigationView的当前活动菜单在两个菜单之间切换。这是我到目前为止所写的:
public void toggleMenu(){
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.menu_trips);
}
我不是一直给同一个菜单充气,而是要创建一个if来膨胀当前不活动的菜单,如下所示:
if (navigationView == R.menu.menu_trips){
navigationView.inflateMenu(R.menu.activity_main_drawer);
} else if (navigationView == R.menu.activity_main_drawer){
navigationView.inflateMenu(R.menu.menu_trips);
}
我不想添加MenuItem,我只想替换菜单。清除然后膨胀是我找到的最佳选择。 如果您有更好的解决方案,请告诉我:)
答案 0 :(得分:0)
您无法从Menu类获取菜单ID。 我建议你保留一个保持当前菜单ID的全局变量。或者,您可以比较第一项,以了解哪个菜单当前处于活动状态。
答案 1 :(得分:0)
解决了它:
String activeMenu;
protected void onCreate(){
activeMenu = "main";
}
public void toggleMenu(){
navigationView.getMenu().clear();
if (activeMenu.equals("main")){
navigationView.inflateMenu(R.menu.menu_trips);
activeMenu = "trips";
} else if (activeMenu.equals("trips")){
navigationView.inflateMenu(R.menu.activity_main_drawer);
activeMenu = "main";
}
}