我的
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,"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,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);
- menu.setGroupVisible(R.id.third_group,true);