android – 如何以编程方式将组添加到导航抽屉

前端之家收集整理的这篇文章主要介绍了android – 如何以编程方式将组添加到导航抽屉前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的 Android应用程序中有一个导航抽屉.我可以通过XML添加组和项目,但是,我需要以编程方式向其添加新组.

例如,我有这个XML:

  1. <group android:checkableBehavior="single">
  2. <item android:id="@+id/nav_camara" android:icon="@android:drawable/ic_menu_camera"
  3. android:title="Import" />
  4. <item android:id="@+id/nav_gallery" android:icon="@android:drawable/ic_menu_gallery"
  5. android:title="Gallery" />
  6. <item android:id="@+id/nav_slideshow" android:icon="@android:drawable/ic_menu_slideshow"
  7. android:title="Slideshow" />
  8. <item android:id="@+id/nav_manage" android:icon="@android:drawable/ic_menu_manage"
  9. android:title="Tools" />
  10. </group>

如果该组没有项目并且我需要通过代码添加它们,我该怎么办呢?

如果我使用:

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

该项目将作为菜单添加到所有选项下方,而不是作为一个组.

问候,
海梅

解决方法

如果您想坚持使用NavigationView,我最好的建议是执行以下操作:

设置XML以包含您认为需要动态添加的任何组并将其设置为不可见:

  1. <menu xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:app="http://schemas.android.com/apk/res-auto"
  3. xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
  4. <group android:id="@+id/main_group">
  5. <item android:id="@+id/nav_camara"
  6. android:icon="@android:drawable/ic_menu_camera"
  7. android:title="Import" />
  8. <item android:id="@+id/nav_gallery"
  9. android:icon="@android:drawable/ic_menu_gallery"
  10. android:title="Gallery" />
  11. <item android:id="@+id/nav_slideshow"
  12. android:icon="@android:drawable/ic_menu_slideshow"
  13. android:title="Slideshow" />
  14. <item android:id="@+id/nav_manage"
  15. android:icon="@android:drawable/ic_menu_manage"
  16. android:title="Tools" />
  17. </group>
  18. <group android:visible="false" android:id="@+id/second_group">
  19.  
  20. </group>
  21. <group android:visible="false" android:id="@+id/third_group">
  22.  
  23. </group>
  24. </menu>

然后,当您需要显示它们或为这些组添加动态选项时:

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

只需确保在添加商品时,商品ID不同,类别中的订单是整个动态商品菜单中的实际订单.

猜你在找的Android相关文章