我有一项与导航主机有关的活动,它使用 NavigationUI 处理导航。 在我的片段中,我有 optionsMenu 和 setHasOptionsMenu(true) 已被弃用,而是我使用 addMenuProvider 扩展了一个新菜单,但它破坏了我在 Appbar 中的后退按钮。我如何使用 NavigationUI 进行设置?
mainActivity.kt:
setSupportActionBar(binding.toolbar)
val navController = findNavController(R.id.nav_host_fragment_content_main)
appBarConfiguration = AppBarConfiguration(navController.graph)
setupActionBarWithNavController(navController, appBarConfiguration)
onSupportNavigateUp:
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment_content_main)
return navController.navigateUp()
|| super.onSupportNavigateUp()
}
在片段中:
val menuHost: MenuHost = requireActivity()
menuHost.addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.addnote_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
if(menuItem.itemId == R.id.done) {
saveNoteComplete()
}
return true
}
}, viewLifecycleOwner, Lifecycle.State.RESUMED)
我尝试使用 NavigationUI.setupWithNavController() 但它没有将菜单作为参数。