2017-09-18 309 views
0

我试图将menuitem添加到子菜单,但我没有将它们添加到我正在经历的id项目中。将项目添加到sidemenu

我在代码中添加的内容是在最后创建的,但我想要的是将它添加到我在XML中创建的'R.id.sidemenu_groups'子菜单中。

这是代码:

<?xml version="1.0" encoding="utf-8"?> 

<group 
    android:id="@+id/sidemenu_principal" 
    android:checkableBehavior="single"> 
    <item 
     android:id="@+id/nav_user_contacts" 
     android:icon="@drawable/ic_menu_gallery" 
     android:title="Favoritos" /> 
    <item 
     android:id="@+id/nav_team_contacts" 
     android:icon="@drawable/ic_menu_gallery" 
     android:title="Contactos de la empresa" /> 
    <!--<item 
     android:id="@+id/nav_slideshow" 
     android:icon="@drawable/ic_menu_slideshow" 
     android:title="Registro" /> 
    <item 
     android:id="@+id/nav_manage" 
     android:icon="@drawable/ic_menu_manage" 
     android:title="Favoritos" />--> 
</group> 

<item 
    android:id="@+id/sidemenu_groups" 
    android:title="Departamentos"> 
    <menu 
     android:checkableBehavior="single"> 
     <item 
      android:id="@+id/add_item" 
      android:icon="@drawable/ic_menu_manage" 
      android:title="Add Item" /> 
    </menu> 
</item> 


<item android:title="Ajustes"> 
    <menu android:id="@+id/sidemenu_other"> 
     <item 
      android:id="@+id/nav_settings" 
      android:icon="@drawable/ic_menu_manage" 
      android:title="Ajustes" /> 
     <item 
      android:id="@+id/nav_send" 
      android:icon="@drawable/ic_menu_send" 
      android:title="Send" /> 
    </menu> 
</item> 

private void makeMenu() { 
    final Menu menu = navigationView.getMenu(); 
    final SubMenu subMenu = menu.addSubMenu("Departamentos"); 
    subMenu.add(R.id.sidemenu_groups, Menu.CATEGORY_SECONDARY, 0, "Menu3"); 
} 

Menu image

我如何添加diferents项目R.id.sidemenu_groups?

在此先感谢

回答

1

你做了一个小错误,只要确保你这样做,你就可以实现你想达到的目标。 永远不要忘记,以增加不同的东西编程

private void makeMenu() { 
final Menu menu = navigationView.getMenu(); 
//since you have called the navMenu object you don't have to go for any submenu 
//this way you add the menu items 
menu.add(R.id.sidemenu_groups, 1, 100, "Menu3"); 
menu.add(R.id.sidemenu_groups, 2, 200, "Menu4"); 
menu.add(R.id.sidemenu_groups, 3, 300, "Menu5"); 
//make sure to make this as single checkable and if you've set you navItem as invisible then do make it visible 
menu.setGroupCheckable(R.id.sidemenu_groups, true, true); 
menu.setGroupVisible(R.id.sidemenu_groups, true); } 

给不同的ID EDITS

尝试增加给你的代码,并告诉我,如果作品

MenuItem menu = 
    navigationView.getMenu().findItem(R.id.sidemenu_groups); 
    SubMenu subMenu = menu.getSubMenu(); 
    //then try adding all the item like this 
    subMenu.add("Menu3"); 
    subMenu.add("Menu4"); 
    subMenu.add("Menu5"); 
    //make sure to make this as single checkable and if you've set you 
    //navItem as invisible then do make it visible 
    menu.setGroupCheckable(R.id.sidemenu_groups, false, false); 
    menu.setGroupVisible(R.id.sidemenu_groups, true); } 

快乐学习!告诉我你是否面临任何问题。

+0

谢谢,但我需要这里面的三个项目: [code] <菜单 机器人:ID = “@ + ID/sidemenu_groups” 机器人:checkableBehavior = “单”> <---我在这里需要的项目 - > <项目 机器人:ID =“@ + id/add_item” android:icon =“@ drawable/ic_menu_manage” android:title =“Add Item”/>

+0

https://imgur.com/a/MDnH5 –

+0

看到我的回答中的编辑,并尝试实施并告诉我你是否得到预期的结果 –

0

一个简单的解决方案是,你可以创建一个使用recyclerView/ExpandableListView您的自定义菜单。这会给你更多的灵活性。

+0

请发布完整的答案,并附上正确的解释和参考链接到您的答案,并尝试发布代码屁股,以提出一个合适的解决方案 –