Как программно добавить группу в навигационный ящик

У меня есть ящик для навигации в приложении для Android. Я могу добавлять группы и элементы к нему с помощью XML, однако мне нужно добавлять новые группы к нему программным путем.

Например, у меня есть этот XML:

<group android:checkableBehavior="single"> <item android:id="@+id/nav_camara" android:icon="@android:drawable/ic_menu_camera" android:title="Import" /> <item android:id="@+id/nav_gallery" android:icon="@android:drawable/ic_menu_gallery" android:title="Gallery" /> <item android:id="@+id/nav_slideshow" android:icon="@android:drawable/ic_menu_slideshow" android:title="Slideshow" /> <item android:id="@+id/nav_manage" android:icon="@android:drawable/ic_menu_manage" android:title="Tools" /> </group> 

Как я могу это сделать, если в этой группе нет элементов, и мне нужно добавить их по коду?

Если я использую:

 Menu sistemas = navigationView.getMenu(); sistemas.add(Menu.FIRST, 1, 0, "Prueba"); 

Элемент добавляется как меню под всеми опциями, а не как группа.

С уважением, Хайме

Мое лучшее предложение, если вы хотите придерживаться NavigationView, состоит в следующем:

Настройте свой XML, чтобы он содержал любые группы, которые, по вашему мнению, вам нужно добавить динамически и установить их в невидимые:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <group android:id="@+id/main_group"> <item android:id="@+id/nav_camara" android:icon="@android:drawable/ic_menu_camera" android:title="Import" /> <item android:id="@+id/nav_gallery" android:icon="@android:drawable/ic_menu_gallery" android:title="Gallery" /> <item android:id="@+id/nav_slideshow" android:icon="@android:drawable/ic_menu_slideshow" android:title="Slideshow" /> <item android:id="@+id/nav_manage" android:icon="@android:drawable/ic_menu_manage" android:title="Tools" /> </group> <group android:visible="false" android:id="@+id/second_group"> </group> <group android:visible="false" android:id="@+id/third_group"> </group> </menu> 

Затем, когда вам нужно показать их или добавить динамические параметры для этих групп:

  Menu menu = mNavView.getMenu(); // Add items to the second group, and set to visible menu.add(R.id.second_group, 1, 100, "Item 1"); menu.add(R.id.second_group, 2, 200, "Item 2"); menu.add(R.id.second_group, 3, 300, "Item 3"); menu.setGroupCheckable(R.id.second_group, true, true); menu.setGroupVisible(R.id.second_group, true); // Add items to the third group, and set to visible menu.add(R.id.third_group, 4, 400, "Item 1"); menu.add(R.id.third_group, 5, 500, "Item 2"); menu.add(R.id.third_group, 6, 600, "Item 3"); menu.setGroupCheckable(R.id.third_group, true, true); menu.setGroupVisible(R.id.third_group, true); 

Просто убедитесь, что когда вы добавляете свои элементы, идентификаторы элемента различаются, а порядок в категории – это фактический порядок во всем меню динамических элементов.