Add items to menu group programatically in navigation view

北战南征 提交于 2019-12-06 01:37:12

To add menu to a particular group, call this method 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");

Important : Initially if you have empty group then newly added items will appear in bottom, to solve this you need to mention orders for groups. add a attribute for all your groups android:orderInCategory="101"

You can do something like this:

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");

create res --> menu file new layout

<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>

set NavigationView to app:menu="@menu/drawer_view"

i hope help you

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!