我正在使用继承自 DarkActionBar
的自定义主题,我想将下拉菜单自定义为白色,就像使用Light Holo主题一样 .
我已经能够使用以下方法将背景更改为白色:
<style name="MyTheme" parent="@style/Theme.Light.DarkActionBar">
<item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
</style>
<style name="MyDropDownNav">
<item name="android:background">@drawable/spinner_background_white</item>
<item name="android:popupBackground">@drawable/menu_dropdown_panel_whyite</item>
<item name="android:dropDownSelector">@drawable/selectable_background_white</item>
</style>
但我没有任何关于如何将文字颜色改为黑色的线索 . 因为在设置白色drawable之后问题是文本不可见因为在白色背景是白色的 .
4 回答
经过一番调查我回答了自己 . 除了问题的样式,您还需要:
自定义
android:spinnerDropDownItemStyle
foractionBarWidgetTheme
更改其文本外观 .另外不要忘记下拉列表由您使用的适配器管理 . 然后,如果你使用标准的(
simple_dropdown_item_1line
),没有问题 . 但是如果您在布局TextView中使用了像我这样的自定义(可以添加图标) don't forget to applystyle="?attr/spinnerDropDownItemStyle"
.然后最终的自定义样式是:
myapp_DropDownNav
中的drawables是白色背景的,你可以在Android Asset Studio中使用ActionBar Style generator生成尝试设置itemTextAppearance . 那应该达到你想要的 .
我偶然发现了最简单的方法 . 我正在使用AppCompat库 .
我的建议是简单地继承Sherlock.Light主题并将适用的字段更改为Dark值 . 对于我的应用,我们想要一个白色的“向上”图标,以及动作标签的白色文本 . 我没有提供我的操作栏图标的黑暗版本,所以无论如何它们都是白色的 . 因此,经过几个小时的讨论并遵循不同的人的建议,我终于找到了我在ABS主题文件中寻找的东西 .
我继承自Sherlock.Light(好吧,技术上是HoloEverywhereLight.Sherlock但是......)并改变:
而已 . 它比尝试扩展类,代码中的东西等更简单,更容易 .