更改默认弹出菜单子菜单箭头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更改默认弹出菜单子菜单箭头相关的知识,希望对你有一定的参考价值。

我正在使用默认的PopupMenu。我已经用我的XML风格定制了它,现在它有一种黑暗的风格。但我现在有一个问题:请看这个屏幕我已经准备好了:

enter image description here

你可以看到箭头很难看到,我真的希望现在避免使用弹出窗口。有什么方法可以把它变成白色箭头吗?

答案

这已经很长时间了,但是如果有其他人遇到这个问题,你可以利用一种风格来解决这个问题。

看起来箭头的颜色是由android:textColorSecondary控制的,所以如果你以编程方式生成弹出菜单,你可以做这样的事情(在Kotlin中):

val contextThemeWrapper = ContextThemeWrapper(context, R.style.PopupMenuStyle)
val popupMenu = PopupMenu(contextThemeWrapper, view)
val menu = popupMenu.menu
menu.addSubMenu(groupId, itemId, order, groupTitle)
menu.add(groupId, itemId, order, title1)
menu.add(groupId, itemId, order, title2)
etc...

并在styles.xml中定义这样的PopupMenuStyle:

<style name="PopupMenuStyle" parent="@style/<some.parent.style>">
    <!--this makes an the arrow for a menu submenu transparent-->
    <item name="android:textColorSecondary">@android:color/transparent</item>
</style>

以上是关于更改默认弹出菜单子菜单箭头的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 在初始状态下折叠菜单箭头

如何更改蓝图菜单项的默认行为?

汉堡菜单旋转到新活动的箭头

如何为子菜单添加向右箭头和为子菜单添加向下箭头

jQuery 菜单 - 如何在菜单上放置箭头以表示子菜单?

阻止 VCL 子控件继承父弹出菜单