我想以编程方式将项目添加到导航栏。我将这个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>
我想在开头显示没有项目的“历史记录”类别,然后稍后将项目添加到该类别。但是我该怎么做?我可以将项目和子菜单添加到列表的末尾但不在中间。谢谢你的帮助。
答案 0 :(得分:2)
使用 Menu.addSubMenu 创建菜单组,然后使用 Menu.add 添加菜单项。
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");