我的
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);
只需确保在添加商品时,商品ID不同,类别中的订单是整个动态商品菜单中的实际订单.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。