8

我的应用程序的主题如下图所示:

带有白色溢出图标的操作栏

由于主题基于Theme.Holo.Light包含深色操作栏文本和溢出图标,我使用以下样式调整了溢出图标:

<style name="ActionBar.Light" parent="android:style/Widget.Holo.ActionBar">
  <item name="android:background">@color/highlight</item>
  <item name="android:titleTextStyle">@style/TextAppearance.ActionBar.Title.Light</item>
  <item name="android:subtitleTextStyle">@style/TextAppearance.ActionBar.Subtitle.Light</item>
</style>
...
<style name="Theme.Light" parent="@android:style/Theme.Holo.Light">
  ...
  <item name="android:actionBarStyle">@style/ActionBar.Light</item>
  <item name="android:actionOverflowButtonStyle">@android:style/Widget.Holo.ActionButton.Overflow</item>
  ...
</style>

当检查一个或多个列表条目时,我想显示一个白色的上下文操作栏,但不幸的是,白色的溢出图标在白色背景上不可见:

白色背景上带有白色溢出图标的上下文操作栏

关于如何仅通过样式或以编程方式更改上下文栏的溢出图标的任何想法?

最终解决方法(2014 年 2 月 27 日)

似乎没有选项可以更改独立于标准操作栏之一的上下文操作栏的溢出图标。所以我别无选择,只能将上下文栏的背景颜色更改为深灰色,以使白色溢出按钮可见:

灰色上下文操作栏

右边的图标在我的控制之下,所以很容易改变它们。左侧的“完成”图标和文本(检查计数器)可以使用主题属性轻松更改。只有“完成”图标和检查计数器之间的细分隔符不能使用属性进行更改。他们需要自定义布局——这就是为什么我暂时保留它的原因。

这是我的上下文栏样式和主题的相关部分:

<style name="TextAppearance.ActionBar.Title" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:fontFamily">sans-serif-light</item>
</style>
<style name="TextAppearance.ActionBar.Title.Light">
    <item name="android:textColor">#ffffff</item>
</style>

<style name="ContextualBar.Light" parent="android:style/Widget.Holo.ActionMode">
    <item name="android:background">#666666</item>
    <item name="android:titleTextStyle">@style/TextAppearance.ActionBar.Title.Light</item>
    <item name="android:actionMenuTextColor">#ffffff</item>
</style>

<style name="Theme.Light" parent="@android:style/Theme.Holo.Light">
    ...
    <item name="android:actionBarStyle">@style/ActionBar.Light</item>
    <item name="android:actionModeStyle">@style/ContextualBar.Light</item>
    <item name="android:actionModeCloseDrawable">@drawable/ic_action_done</item>
    <item name="android:actionOverflowButtonStyle">@android:style/Widget.Holo.ActionButton.Overflow</item>
    <item name="android:actionMenuTextColor">#ffffff</item>
    ...
</style>

广告:您可以在 Google Play 上提供的最终应用“uPod”中查看完整结果!

4

1 回答 1

3

关于您的主题并假设您使用 Appcompat

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
   <item name="android:actionOverflowButtonStyle">@style/OverFlowStyle</item>
</style>
<style name="OverFlowStyle"  parent="Widget.AppCompat.ActionButton.Overflow">
   <item name="android:src">@drawable/your_selector_drawable_here</item>  
</style>
于 2014-02-10T15:38:03.823 回答