如何解决当片段不是导航堆栈的顶视图时隐藏 MenuButton
假设我有以下导航图:
在 homeFragment
中,我有一个菜单项,用户可以在其中注销应用程序。如果用户导航到另一个视图(在本例中为 hostGameFragment
或 joinGameFragment
),如预期的那样,菜单项会消失。
但是,我在 profileFragment
中有另一个菜单项,它是 bottomNavigationView
的 homeFragment
的子片段。该菜单项切换用户是否可以编辑他的个人资料。正如预期的那样,如果用户更改 bottomNavigationView
中的片段,它就会消失。当用户在个人资料选项卡上并导航到 hostGameFragment
或 joinGameFragment
时,问题就会出现。在这种情况下,即使不应该,编辑菜单项也会保留在操作栏上。
如何确保编辑菜单不会出现在 homeFragment
之外?
编辑菜单项按如下方式创建:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu,inflater: MenuInflater) {
super.onCreateOptionsMenu(menu,inflater)
if (viewmodel.isEditable) {
inflater.inflate(R.menu.profile_fragment_menu,menu)
}
}
override fun onoptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_edit -> {
viewmodel.toggleEditing()
true
}
else -> super.onoptionsItemSelected(item)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。