我正在尝试将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");
}
如何将差异项添加到R.id.sidemenu_groups?
提前致谢
答案 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创建自定义菜单。这将为您提供更大的灵活性。