在导航视图中以编程方式将项添加到菜单组

时间:2016-03-31 12:33:44

标签: android android-studio layout menuitem

我正在尝试以实用方式向菜单组添加菜单项,但我发现无法做到这一点。我正在使用导航视图并添加了下面提到的菜单:

<?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上搜索了解决方案但发现无法做到这一点。

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

3 个答案:

答案 0 :(得分:6)

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

@profiles_sidebar = Profile.includes(:user)
                           .order(created_at: :desc)
                           .limit(10)
                           .load

重要:最初如果您有空组,则新添加的项目将显示在底部,要解决此问题,您需要提及组的订单。为您的所有群组 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"); 添加一个属性

答案 1 :(得分: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");

答案 2 :(得分:0)

创建res - &gt;菜单文件新布局

<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设置为app:menu =“@ menu / drawer_view”

我希望能帮到你