2016-03-31 174 views
2

我试图实用地将菜单项添加到菜单组,但是我找不到这样做的方法。我正在使用导航视图并添加了下面提到的菜单:在导航视图中以编程方式将项目添加到菜单组

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:id="@+id/nav_lang_currency" 
     android:title="" /> 

    <item 
     android:id="@+id/nav_home" 
     android:title="" /> 

    <group android:id="@+id/nav_refer" /> 

    <item 
     android:id="@+id/nav_setting" 
     android:title="" /> 

    <item 
     android:id="@+id/nav_about_us" 
     android:title="" /> 

    <item 
     android:id="@+id/nav_logout" 
     android:title="" /> 

</menu> 

如上所述,一切看起来都不错。

我只是想按照业务需求在运行时在nav_refer组中添加多个菜单项,但是我找不到这样做。

我搜索了SO的解决方案,但发现没有办法做到这一点。

请建议我如何在运行时在组中添加多个菜单项。

回答

1

你可以做这样的事情:

NavigationView navView = (NavigationView) findViewById(R.id.navView); 
Menu menu = navView.getMenu(); 
SubMenu subMenu = menu.addSubMenu("sub menu"); 
subMenu.add("item 1"); 
subMenu.add("item 2"); 
subMenu.add("item 3"); 
4

要添加菜单特定组,调用此方法Menu.add(int groupId, int itemId, int order, CharSequence title)

Menu menu = navigationView.getMenu(); 
    menu.add(R.id.nav_refer, 123, Menu.NONE, "Title1"); 
    menu.add(R.id.nav_refer, 124, Menu.NONE, "Title2"); 
    menu.add(R.id.nav_refer, 125, Menu.NONE, "Title3"); 

重要:首先,如果你有空组然后新添加的项目将出现在底部,为了解决这个问题,您需要提及组的订单。为您的所有群组添加属性android:orderInCategory="101"

Happy_Coding;

0

创建资源 - >菜单文件中的新布局

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <group android:checkableBehavior="single"> 
     <item android:title="حساب کاربری"> 
      <menu> 
       <group android:title="حساب کاربری"> 
        <item android:title="ورود" /> 
        <item android:title="ثبت نام" /> 
       </group> 
      </menu> 
     </item> 
    </group> 
    <group android:checkableBehavior="single"> 
     <item android:title="سایت"> 
      <menu> 
       <group android:title="حساب کاربری"> 
        <item android:title="ورود" /> 
        <item android:title="ثبت نام" /> 
       </group> 
      </menu> 
     </item> 
    </group> 
</menu> 

集NavigationView到应用程序:菜单= “@菜单/ drawer_view”

我希望帮助你

相关问题