How to change a Menu of a NavigationView programma

2019-08-21 01:48发布

问题:

Hello I'm wondering how can I change a Menu ID from a NavigationView, in this case it is triggered when the user clicks on a RadioButton. I have that part already but I just need to know how to change the Menu, so in the menu it will display different options when RadioButton is clicked.

private var radioAdm:RadioButton? = null
private var radioAtle:RadioButton? = null
private var atletanav:BottomNavigationView? = null
private var menuopt = "@menu/admin_menu"

override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) {
     // Here is where I need to put that code
    }

I've tried this already but no success:

atleta_navbar.set(menu){menu=menuopt}
atleta_navbar.setTag(menuopt)

So in the NavigationView it will go from this:

To this:

回答1:

In java you could try this to re-inflate NavigationView at runtime.

navigationView.getMenu().clear(); //clear old inflated items.
navigationView.inflateMenu(R.menu.new_navigation_drawer_items);

I don't know kotlin,but the thought is same.