Android Navigation View Settings Menu Programmatically

In my application, I want to go through a certain menu depending on some conditions.

This is the layout:

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

All I want to do is dynamically change @ menu / activity_main_drawer_1 depending on some conditions.

How can I do this programmatically?

+12
source share
4 answers

Use inflateMenu on a NavigationView .

For instance:

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

See here for more information.

+14
source

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

+21
source

This should work:

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

Hope it helps.

+1
source
 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);


-2
source

Source: https://habr.com/ru/post/1233773/


All Articles