android - Android弹出菜单标题
问题描述
我正在使用 androidx.appcompat.widget 包中的 PopupMenu(参见图片)。只是好奇是否有任何简单的方法可以为弹出窗口设置标题。或者更改第一个菜单项的 alpha 并为其禁用波纹效果,使其不可点击并且看起来像标题。有任何想法吗?
解决方案
自从提出这个问题以来已经有一段时间了,但是我有同样的问题,也许有人会发现我的解决方案很有用。
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()
}
重要时刻是:
isEnabled = false
为您想要看起来像标题的项目设置(在我的情况下,它是不可选择的浅灰色)- 将 order 参数设置为“header”项目小于任何 order 参数到其他项目。
如果您从 xml 扩展弹出菜单,请将以下属性设置为“标题项”:android:enabled="false"
推荐阅读
- reactjs - 如何在 Next.js 中监听路由器更改时更改状态?
- python - 我只是想在 Scrollable 文本框上显示函数的结果
- reactjs - 带有 React 的 TypeScript - 'string' 类型的参数不可分配给'keyof T' 类型的参数
- rust - 如何构建 Rust 整体库并链接到它?
- java - 在流映射中使用 Java Optional
- javascript - 如何在 JSDoc 中为数组添加属性?
- vector - 近似向量的相似度函数?
- quarkus - 在 quarkus 中为 AWS Glue Schema Registry 配置反应式消息传递
- excel - 如果数组上的条件之一不在表中,则具有数组条件的 Sumifs 将不起作用
- ethereum - Solidity - 添加代币徽标