Навигация по Android Просмотреть меню настроек программно

В моем приложении я хочу пройти определенное меню в зависимости от некоторых условий.

Это макет:

 <android.support.design.widget.NavigationView
        android:id="@+id/nav_view_free"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:background="@color/Color_White"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer_1"
        />

Все, что я хочу сделать, это динамически изменять @menu/activity_main_drawer_1 в зависимости от некоторых условий.

Как я могу сделать это программно?

Ответ 1

Используйте inflateMenu на NavigationView.

Например:

navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.menu_view);

Смотрите здесь для получения дополнительной информации.

Ответ 2

navigationView.getMenu().clear(); navigationView.inflateMenu(R.menu.your_menu);

Ответ 3

Это должно работать:

val menu = navigationView.menu
val submenu = menu.addSubMenu("New set")

submenu.add("Item1")
submenu.getItem(0).setIcon(R.drawable.item1)
submenu.add("Item2")
submenu.getItem(1).setIcon(R.drawable.item2)
submenu.add("Item3")
submenu.getItem(2).setIcon(R.drawable.item3)
navigationView.invalidate()

Надеюсь, поможет.

Ответ 4

Create Generic class Implements Menu iterface then add menu item 
NavigationView  nd=(NavigationView )findViewById(R.id.nav_view_free);

Menu mn=new Menu();

mn.add("email");

mn.add("email");

mn.add("email");

mn.add("email");

nd(mn);