首页 > 解决方案 > Android弹出菜单标题

问题描述

我正在使用 androidx.appcompat.widget 包中的 PopupMenu(参见图片)。只是好奇是否有任何简单的方法可以为弹出窗口设置标题。或者更改第一个菜单项的 alpha 并为其禁用波纹效果,使其不可点击并且看起来像标题。有任何想法吗?

提前致谢。弹出菜单

标签: androidpopupmenu

解决方案


自从提出这个问题以来已经有一段时间了,但是我有同样的问题,也许有人会发现我的解决方案很有用。

PopupMenu(requireContext(), anchorView).apply{
   //==== Popup title, non-selectable
   menu.add(Menu.NONE, -1, 0, "Popup Title").apply {
        isEnabled = false }

   //==== Popup items
   menu.add(Menu.NONE, 1, 1, "First selectable item")
   menu.add(Menu.NONE, 2, 2, "Second selectable item")
   menu.add(Menu.NONE, 3, 3, "Third selectable item")

   //==== Selected item callback
   setOnMenuItemClickListener {item ->
      // Whatever you need to do according to the selected item.itemId
      // ...
      return@setOnMenuItemClickListener true
   }
   show()
}

重要时刻是:

  1. isEnabled = false为您想要看起来像标题的项目设置(在我的情况下,它是不可选择的浅灰色)
  2. 将 order 参数设置为“header”项目小于任何 order 参数到其他项目。

如果您从 xml 扩展弹出菜单,请将以下属性设置为“标题项”:android:enabled="false"


推荐阅读