he creado un navidagtion activity en android studio y bueno este implementa el menú de esta manera:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:showIn="navigation_view"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_camera" android:icon="@drawable/ic_menu_camera" android:title="Import" /> <item android:id="@+id/nav_gallery" android:icon="@drawable/ic_menu_gallery" android:title="Gallery" /> <item android:id="@+id/nav_slideshow" android:icon="@drawable/ic_menu_slideshow" android:title="Slideshow" /> <item android:id="@+id/nav_manage" android:icon="@drawable/ic_menu_manage" android:title="Tools" /> </group> <item android:title="Communicate"> <menu> <item android:id="@+id/nav_share" android:icon="@drawable/ic_menu_share" android:title="Share" /> <item android:id="@+id/nav_send" android:icon="@drawable/ic_menu_send" android:title="Send" /> </menu> </item> </menu>
Ahora bien en el activity.tk detecta elclick en los itempreestablecidos de esta manera mediante su ID:
override fun onNavigationItemSelected(item: MenuItem): Boolean { // Handle navigation view item clicks here. when (item.itemId) { R.id.nav_camera -> { // Handle the camera action } R.id.nav_gallery -> { } R.id.nav_slideshow -> { } R.id.nav_manage -> { } R.id.nav_share -> { } R.id.nav_send -> { } } drawer_layout.closeDrawer(GravityCompat.START) return true }
ahora yo agrego nuevos elementos al menú de acuerdo a condiciones de la aplicación de esta manera:
private fun addMenuItemInNavMenuDrawer() { val navView = findViewById<View>(R.id.nav_view) as NavigationView val myIntent = Intent(applicationContext, MainActivity::class.java) val menu = navView.menu val submenu = menu.addSubMenu("New Super SubMenu") submenu.add("Super Item1").setIcon(R.drawable.icon_cedula) submenu.add("Super Item2").setIcon(R.drawable.icon_cedula) submenu.add("Super Item3").setIcon(R.drawable.icon_cedula) navView.invalidate() }
lo que no he conseguido hacer es que al hacer clic en estos nuevos items de menú, me dirija a un activity especifico para este, ya que podrían variar como comente a alguna condición, por ejemplo si el usuario es administrador,vendedor o etc.