ude*_*fox 14 android android-styles android-toolbar
我在我的项目中使用android.support.v7.widget.Toolbar.默认情况下,在灯光主题中它有黑色动作溢出菜单图标,黑色标题和黑色溢出菜单文本颜色,就像那样(不要看导航图标 - 它是自定义的):

但在我的应用程序中,我需要它是白色的.我在工具栏的样式中将android:textColorPrimary设置为白色:
<style name="Widget.My.Toolbar" parent="Widget.AppCompat.Toolbar">
<item name="theme">@style/ThemeOverlay.My.Toolbar</item>
</style>
<style name="ThemeOverlay.My.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="android:textColorPrimary">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
它改变了标题的颜色和溢出菜单按钮,就像我想要的那样,但它也改变了Action owerflow菜单项的文字颜色:

它看起来很难看.我甚至试过以编程方式设置标题颜色
toolbar.setTitleTextColor(getResources.getColor(R.color.white);
Run Code Online (Sandbox Code Playgroud)
但它只改变标题颜色,而不是更改菜单按钮:

那么除了动作溢出菜单中的项目外,如何更改工具栏中所有内容的颜色?
为您设置文本颜色后,Toolbar您可以使用以下属性设置菜单的文本颜色:
<item name="actionMenuTextColor">@color/white</item>
Run Code Online (Sandbox Code Playgroud)
由于您使用的是AppCompat,Toolbar因此不需要在属性中包含android命名空间,如上所示.
然而,似乎人们对此有不同的经验.您也可以尝试使用该itemTextAppearance属性:
<style name="yourTheme" parent="yourThemeParent">
<!-- Rest of your theme -->
<item name="android:itemTextAppearance">@style/menuItemColor</item>
</style>
<style name="menuItemColor">
<item name="android:textColor">@android:color/black</item>
</style>
Run Code Online (Sandbox Code Playgroud)
当我明确地Toolbar在我的布局中包含a时,我发现第一个解决方案对我有用,但是如果我曾经getSupportActionBar()在给定主题中包含默认栏,则不会.但是,在这种情况下,第二个解决方案对我有用.
| 归档时间: |
|
| 查看次数: |
2945 次 |
| 最近记录: |