获取当前导航菜单为R.menu

时间:2017-04-17 10:41:30

标签: android navigationview

在我的应用程序中,当我点击标题时,我需要更改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,我只想替换菜单。清除然后膨胀是我找到的最佳选择。 如果您有更好的解决方案,请告诉我:)

2 个答案:

答案 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";
    }
}