我在项目中使用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>
就像我想要的那样,它更改了标题和溢出菜单按钮的颜色,但它也更改了操作顺流菜单项的文本颜色:
看起来很丑。我什至尝试以编程方式设置标题颜色
toolbar.setTitleTextColor(getResources.getColor(R.color.white);
但只会更改标题颜色,而不会更改菜单按钮:
那么,如何为工具栏中的所有内容更改颜色,但动作溢出菜单中的项目除外?
为Toolbar
设置文本颜色后,可以使用以下属性设置菜单的文本颜色:
<item name="actionMenuTextColor">@color/white</item>
Toolbar
如上所示,由于您使用的是AppCompat,因此无需在属性中包含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>
我发现,当我Toolbar
在布局中明确包含a时,第一个解决方案对我有用,但如果我过去习惯getSupportActionBar()
将给定主题中包含的默认栏包含在内,则不可行。但是,在这种情况下,第二个解决方案确实对我有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句