更改 actionBar 下拉背景颜色
Posted
技术标签:
【中文标题】更改 actionBar 下拉背景颜色【英文标题】:Changing actionBar dropdown background color 【发布时间】:2013-03-03 20:23:55 【问题描述】:如何更改显示“添加联系人”和“关于”的背景颜色。现在它有点灰,但我希望它是白色的!这是一个带有下拉菜单的 actionBar,而不是一个微调器。而且我没有使用那个 actionbarsherlock 的东西。
【问题讨论】:
您的应用程序使用哪个主题? 【参考方案1】:例如,在您现有的父 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
是这样的:
您可以选择使用与上述类似的图像,也可以使用Color
资源。
这是默认的ActionBar。不是ActionBarSherlock
。 ;-)
ActionBar
可以使用这个很酷的网站轻松创建样式:http://jgilfelt.github.com/android-actionbarstylegenerator/。在决定风格之前,我通常会在这里做一些实验。此外,它还可以让您下载样式和所有必要的资源。只需将它们插入您的应用程序,您就可以开始使用了。 :-)
更新:我认为我造成了一些混乱,导致您的应用下拉菜单中的阴影丢失。您可能已经替换了我在原始建议中列出的Style
中的所有<items>
。编辑应该可以解决这个问题。
更新 2:
使用这些图像资源而不是您当前使用的 @android:color/white
值。它们的顺序是 XHDPI、HDPI 和 MDPI。保存它们并在样式定义中使用它们。
【讨论】:
popupBackground 工作,但现在我想念盒子上的阴影。有没有办法让它更容易编码,而不是添加所有其他行 @Codebox:抱歉耽搁了。我认为混乱是我的错。您不需要添加其余的行。只需几分钟即可完成编辑。对不起。 :-( 我只添加了你现在拥有的那些行,但阴影仍然被删除了。我使用@android:color/white for android:popupBackground @Codebox:啊。那是因为@android:color/white
没有阴影。如果您注意到附加的图像,它有自己的影子。让我创建一组您可以使用的快速图像,而不是 @android:color/white
属性。那会让你的影子回来。 ;-)【参考方案2】:
尝试从ActionBarStyleGenerator 服务获取样式。它具有预览功能,并使所有必要的可绘制、xml 和样式。 在那里您可以轻松找到并更改所需的颜色,然后在源中找到它(在您的情况下是 android:popupBackground)。
【讨论】:
【参考方案3】:您可以简单地覆盖主题中的 itemBackground 项目:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:itemBackground">@color/skyBlue</item>
</style>
【讨论】:
以上是关于更改 actionBar 下拉背景颜色的主要内容,如果未能解决你的问题,请参考以下文章