将项添加到导航抽屉

时间:2016-01-10 17:21:50

标签: android xml navigation-drawer

我想以编程方式将项目添加到导航栏。我将这个xml用于导航抽屉:

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

<group
    android:id="@+id/nav_group"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_item1"
        android:title="@string/nav_text_item1" />
    <item
        android:id="@+id/nav_item2"
        android:title="@string/nav_text_item2" />
</group>

<group
    android:id="@+id/nav_group2"
    android:checkableBehavior="single">
    <item  android:id="@+id/nav_menu" android:title="History">
        <menu>
           <!-- Add Items here-->
        </menu>
    </item>
</group>
<group
    android:id="@+id/nav_group3"
    android:checkableBehavior="single">

        <item
            android:id="@+id/nav_item3"
            android:title="@string/nav_text_item3" />
        <item
            android:id="@+id/nav_item4"
            android:title="@string/nav_text_item4" />

</group>

我想在开头显示没有项目的“历史记录”类别,然后稍后将项目添加到该类别。但是我该怎么做?我可以将项目和子菜单添加到列表的末尾但不在中间。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

使用 Menu.addSubMenu 创建菜单组,然后使用 Menu.add 添加菜单项。

android developer manual link

NavigationView navView = (NavigationView) findViewById(R.id.your_nav_view_id);
Menu m = navView.getMenu();
SubMenu menuGroup = m.addSubMenu("My menu group");
menuGroup .add("Foo");
menuGroup .add("Bar");

或者,如果您不想使用菜单组,只需直接添加到菜单

NavigationView navView = (NavigationView) findViewById(R.id.your_nav_view_id);
Menu m = navView.getMenu();
MenuItem foo_menu_item=m.add("foo");