0
class FirstFragment : Fragment(), MenuProvider {
    ...
    override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
    //not called 
        menuInflater.inflate(R.menu.menu_, menu)
    } 
    override fun onMenuItemSelected(menuItem: MenuItem): Boolean {

        return true
    }
}
  <com.google.android.material.navigation.NavigationView
        android:id="@+id/nv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:menu="@menu/menu_"/>

I'm trying to add a menu to the fragment (not the action bar), even if I add it in XML, I can't access it in the code. I tried many ways on the internet, I added menuhost to oncreate, I updated the version of the modules, but it didn't work, what do I need to know?

I also tried this code,i don't get error but function is not called

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {  
        
        val menuHost: MenuHost = requireActivity() as MenuHost

        menuHost.addMenuProvider(object : MenuProvider {
            override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { 
        //not called
                menuInflater.inflate(R.menu.menu_, menu)
            }

            override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
            }
}, viewLifecycleOwner, Lifecycle.State.RESUMED)

oguz
  • 25
  • 5

1 Answers1

1

I solved I saw this code to video:

 activity?.addMenuProvider(this)  

I added in OnViewCreaded, it's worked

oguz
  • 25
  • 5