更改操作栏下拉菜单背景颜色

4

在此输入图片描述

如何更改“添加联系人”和“关于”字样背景的颜色。目前它们是灰色的,但我希望它们为白色!这是具有下拉菜单的操作栏,而不是一个微调器。我没有使用ActionBarSherlock。


你的应用程序使用哪个主题? - Akbari Dipali
3个回答

7
例如,在您现有的父级Style定义中,只需添加如下所示的android:popupMenuStyle属性:
<style name="Theme.Example" parent="@android:style/Theme.Holo.Light">
    <item name="android:popupMenuStyle">@style/PopupMenu.Example</item>
    .......
    .......
</style>

通过定义您自己的样式来覆盖android:popupMenuStyle属性:

<style name="PopupMenu.Example" parent="@android:style/Widget.Holo.Light.ListPopupWindow">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_example</item>
</style>
@drawable/menu_dropdown_panel_example是这个样子的: enter image description here 你可以选择使用类似上图的图片,或者使用Color资源。
这是默认的ActionBar。不是ActionBarSherlock。 ;-)
可以通过这个很酷的网站轻松创建ActionBar样式:http://jgilfelt.github.com/android-actionbarstylegenerator/。通常在这里进行一些实验以决定样式。此外,它还可以让您下载样式和所有必要的资源。只需将它们插入您的应用程序中即可。 :-)
更新:我认为我引起了一些混淆,导致您的应用程序下拉菜单失去了阴影。您可能已经替换了我在原始建议中列出的所有<items>。编辑应该可以解决这个问题。
更新2:
请使用这些图像资源,而不是您目前正在使用的@android:color/white值。这些按XHDPI、HDPI和MDPI的顺序排列。保存并在Style定义中使用它们。 enter image description here enter image description here enter image description here

弹出框背景已经实现了,但是现在我想要在盒子上添加阴影。有没有更简单的编码方式,而不是添加所有这些其他行? - Codebox
@Codebox:抱歉耽误了。我觉得混淆的责任应该是在我这边。你不需要添加其他的行,只需要在几分钟内进行编辑即可。非常抱歉 :-( - Siddharth Lele
我只添加了你现在拥有的那些行,但阴影仍然被移除了。而且我正在使用@android:color/white作为android:popupBackground。 - Codebox
@Codebox:啊,那是因为@android:color/white没有阴影。如果你注意到附加的图片,它有自己的阴影。让我快速创建一组图像,你可以使用它们来代替@android:color/white属性。这样就能恢复你的阴影了。;-) - Siddharth Lele

0

您可以在主题中简单地覆盖itemBackground项:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:itemBackground">@color/skyBlue</item>
</style>

0
尝试从 ActionBarStyleGenerator服务中获取样式。它具有预览功能,并生成所有必要的可绘制、XML和样式。在那里,您可以轻松找到并更改所需的颜色,然后在源代码中找到它(在您的情况下是android:popupBackground)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接