添加项目到sidemenu

时间:2017-09-18 10:52:19

标签: android

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

我在代码添加的内容是在最后创建的,但我想要的是它被添加到我用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

如何将差异项添加到R.id.sidemenu_groups?

提前致谢

2 个答案:

答案 0 :(得分:1)

你做了一个小错误,只要确保你这样做,你就能实现你想要达到的目标。 永远不要忘记给出不同的ID以便以编程方式添加不同的内容

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);  }

<强> 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);  }
快乐学习!如果您遇到任何问题,请告诉我。

答案 1 :(得分:0)

一个简单的解决方案是您可以使用recyclerView / ExpandableListView创建自定义菜单。这将为您提供更大的灵活性。