如何在某些情况下隐藏工具栏中的 MenuItem?
How to hide MenuItem in the toolbar in certain situations?
我有一个表单屏幕,它也是一个信息屏幕,但处于不同的状态。当用户输入创建时,我想隐藏分配给删除的 MenuItem。
如何在不破坏应用程序的情况下做到这一点?
我试着这样称呼它:
val menu = findViewById<MenuItem>(R.id.deleteBarra)
你想在什么情况下隐藏,你可以在那个条件下添加。
menu.visibility = View.INVISIBLE
或
menu.visibility = View.GONE
这是关于它的 docs,但您基本上想在 onPrepareOptionsMenu
而不是 onCreateOptionsMenu
中进行菜单设置。 onPrepareOptionsMenu
每次需要显示菜单时都会调用(而不是在设置期间调用一次)。
所以你可以设置一个布尔值或其他任何东西来说明是否应该显示该项目,然后调用 invalidateOptionsMenu()
重新显示它。在 prepareOptionsMenu()
中,您可以访问菜单本身,因此您可以检查该布尔值并设置相应项目的可见性
我有一个表单屏幕,它也是一个信息屏幕,但处于不同的状态。当用户输入创建时,我想隐藏分配给删除的 MenuItem。 如何在不破坏应用程序的情况下做到这一点? 我试着这样称呼它:
val menu = findViewById<MenuItem>(R.id.deleteBarra)
你想在什么情况下隐藏,你可以在那个条件下添加。
menu.visibility = View.INVISIBLE
或
menu.visibility = View.GONE
这是关于它的 docs,但您基本上想在 onPrepareOptionsMenu
而不是 onCreateOptionsMenu
中进行菜单设置。 onPrepareOptionsMenu
每次需要显示菜单时都会调用(而不是在设置期间调用一次)。
所以你可以设置一个布尔值或其他任何东西来说明是否应该显示该项目,然后调用 invalidateOptionsMenu()
重新显示它。在 prepareOptionsMenu()
中,您可以访问菜单本身,因此您可以检查该布尔值并设置相应项目的可见性