Android Fragments Android MenuProvider无法在Fragment中工作

bpsygsoo  于 2023-10-19  发布在  Android
关注(0)|答案(1)|浏览(146)

我需要添加一个菜单,这取决于用户正在查看的片段。
我尝试在我的片段的onViewCreated-方法中使用新的MenuProvider

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
        }
    }
}

这不会对我的主活动中的工具栏做任何事情。我必须在某个地方启用菜单吗?

Edit 1正如我在一个类似问题的答案中所看到的,将其放入我的MainActivity并没有起到作用:

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

编辑2将我的菜单项移动到一个组中也没有修复它。
编辑3我在menuInflater.inflate()处设置了一个断点,但它没有被激活,这告诉我,Activity并不关心菜单提供程序。

7fhtutme

7fhtutme1#

我在主活动的onCreate中遗漏了一个setSupportActionBar(findViewById(R.id.toolbar))

相关问题