Android MenuProvider 在 Fragment 中不起作用

Android MenuProvider not working inside Fragment

提问人:Julius Babies 提问时间:8/9/2023 最后编辑:Julius Babies 更新时间:8/9/2023 访问量:97

问:

我需要根据用户正在查看的片段添加一个菜单。

我尝试在我的 Fragment 的 -Method 中使用 new:MenuProvideronViewCreated


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

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

        override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
            return true
        }
    }
}

这与我在 Main-activity 中的工具栏没有任何作用。我必须在某处启用菜单吗?

编辑 1正如我在类似问题的答案中看到的那样,将其放入我的 MainActivity 中并不能解决问题:

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    return true
}

编辑 2将我的菜单项移动到组中也没有解决它。

编辑 3我放置了一个断点,但它没有被激活,这告诉我,该活动不关心菜单提供程序。menuInflater.inflate()

Kotlin Android-fragments Android-Activity Android-ActionBar

评论


答:

0赞 Julius Babies 8/9/2023 #1

我错过了我的 MainActivitysetSupportActionBar(findViewById(R.id.toolbar))onCreate