【发布时间】:2020-10-17 04:18:05
【问题描述】:
当用户使用导航组件单击工具栏中的菜单时,我正在尝试更改当前片段,但是我根本无法从片段中获取菜单!我正在使用带有 2 个片段的底部导航栏,每个片段都有不同的工具栏菜单项,我没有使用导航抽屉。 这是来自 HomeFragment.kt 的一个小 sn-p:
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
activity?.title = getString(R.string.title_home)
setHasOptionsMenu(true)
return inflater.inflate(R.layout.fragment_home, container, false)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.toolbar_menu, menu)
super .onCreateOptionsMenu(menu, inflater)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.toolbar_about -> {
activity?.findNavController(R.id.bottom_nav_host)?.navigate(R.id.toAboutFragment)
Toast.makeText(context, "You clicked on About menu", Toast.LENGTH_SHORT).show()
}
else -> super.onOptionsItemSelected(item)
}
return true
}
它甚至不显示我指定的 Toast。谁能帮助我?提前致谢!
【问题讨论】:
-
这可能与您的主机活动有关 - 您在哪里将 supportActionBar 设置到您的工具栏? - 哪个布局包含应添加菜单的工具栏、您的活动或片段?
-
我在 MainActivity 中设置了 supportActionBar (这是除了 Splashscreenactivity 和用于主题和语言的 baseactivity 之外的唯一活动)onCreate 方法,包含工具栏的布局是 activity_main.xml
标签: android android-toolbar android-architecture-navigation