获取 navigationView 的当前 Menu as R.menu
Get the current Menu of navigationView as R.menu
在我的应用程序中,当我点击 header
时,我需要更改导航视图的菜单
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,我只想替换菜单。清除它然后充气是我找到的最佳选择。
如果您有更好的解决方案,请告诉我:)
您无法从菜单 class 中获取菜单 ID。
我建议您保留一个全局变量来保存您当前的菜单 ID。或者您可以比较第一项以了解哪个菜单当前处于活动状态。
已解决:
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";
}
}
在我的应用程序中,当我点击 header
时,我需要更改导航视图的菜单
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,我只想替换菜单。清除它然后充气是我找到的最佳选择。 如果您有更好的解决方案,请告诉我:)
您无法从菜单 class 中获取菜单 ID。 我建议您保留一个全局变量来保存您当前的菜单 ID。或者您可以比较第一项以了解哪个菜单当前处于活动状态。
已解决:
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";
}
}