我正在尝试以实用方式向菜单组添加菜单项,但我发现无法做到这一点。我正在使用导航视图并添加了下面提到的菜单:
<?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上搜索了解决方案但发现无法做到这一点。
请建议我如何在运行时在组中添加多个菜单项。
答案 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”
我希望能帮到你