【发布时间】:2016-02-09 00:40:32
【问题描述】:
这是我的主题。我正在使用DarkActionBar,因此标题、后退按钮和溢出图标是白色而不是黑色。
<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
However, when text is selected, the ActionMode / Contextual Action Bar is white text on a 'black' background.
当我删除.DarkActionBar 时,上下文操作栏会切换为浅灰色上的黑色,这对这个应用程序来说更令人愉悦。所以如果我要走那条路,我需要找到一种不同的方法来让主操作栏使用白色前景。
如何在 ActionMode/上下文操作栏上获得浅色背景/深色前景,同时我的主 ActionBar 上仍具有浅色前景?
这是我根据丹尼尔在 cmets 中的建议所尝试的:
<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="actionModeStyle">@style/MyTheme.ActionMode</item>
<item name="actionMenuTextColor">@android:color/black</item>
</style>
<style name="MyTheme.ActionMode" parent="Widget.AppCompat.ActionMode">
<item name="background">@android:color/white</item>
<item name="actionMenuTextColor">@android:color/black</item>
<item name="android:titleTextStyle">@style/MyTheme.ActionMode.TitleText</item>
<item name="android:subtitleTextStyle">@style/MyTheme.ActionMode.TitleText</item>
</style>
<style name="MyTheme.ActionMode.TitleText">
<item name="android:textColor">@android:color/black</item>
</style>
不幸的是,我所能改变的只是背景。所有 ActionMode 文本和图标仍然是白色的。
我现在将使用<item name="background">@color/colorPrimary</item>。它比黑色背景更好。
似乎还是有办法将前景更改为黑色,让我可以使用 Android 典型的浅灰色背景。
【问题讨论】:
-
你试过设置
actionModeStyle吗?看看这里接受的答案:stackoverflow.com/questions/27458421/… -
@DanielNugent,查看我的编辑。
-
嗯,实际上看起来应该可以。奇怪...
-
哎呀!忘记将
actionMenuTextColor添加到我的values-v21\styles.xml覆盖。所以,所有这些改变颜色的尝试,只有第一个是必要的<item name="actionMenuTextColor">@android:color/black</item>。我不需要titleTextStyle等。看起来我必须将剪贴画图标打包到我的项目中,因为它们仍然是白底白字。似乎 Android 会有更直接的解决方案,但也许没有。 -
不错!你应该用你的最终配置写一个答案。请注意,您可以在此处找到大多数内容的图标,包括浅色和深色选项:design.google.com/icons
标签: android themes android-actionmode