您好,我想知道如何从NavigationView中更改菜单ID,在这种情况下,当用户单击RadioButton时会触发该菜单ID。我已经有了那部分,但是我只需要知道如何更改菜单,因此在单击RadioButton时,在菜单中它将显示不同的选项。
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
}
我已经尝试过了,但是没有成功:
atleta_navbar.set(menu){menu=menuopt}
atleta_navbar.setTag(menuopt)
因此,在NavigationView中,它将从此开始:
对此:
答案 0 :(得分:0)
在Java中,您可以尝试在运行时重新为NavigationView充气。
navigationView.getMenu().clear(); //clear old inflated items.
navigationView.inflateMenu(R.menu.new_navigation_drawer_items);
我不认识科特林,但想法是一样的。
答案 1 :(得分:0)
此代码对我有用,如navylover答案所解释
1-确保在我的情况下您有不同的菜单,我有R.menu.navigation
和R.menu.navigation_normal
private fun User() {
// clear previous menu
binding.navi.menu.clear()
// add new menu item
binding.navi.inflateMenu(R.menu.navigation)
//add listener for new bottom naviagtion
binding.navi.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
// when using Navigation component
//set up bottom navigation bar with navigation graph
NavigationUI.setupWithNavController(binding.navi, navController)
}