我的
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);