6

我想改变我的操作栏的背景颜色,但它不会改变。我的应用程序使用AppCompat主题,如果这影响任何东西。Android ActionBar不改变背景颜色

这是我正在使用的主题。我的应用程序点使用这个主题,这样是没有问题的

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="actionBarStyle">@style/ActionBar</item> 
</style> 

<!-- Action Bar Styles --> 
<style name="ActionBar" parent="Widget.AppCompat.ActionBar"> 
    <item name="android:background">@color/blue</item> 
    <item name="background">@color/blue</item> 
</style> 

+0

你还用** ** AppTheme清单中? – waqaslam 2014-09-01 22:01:43

+0

@waqaslam是。我在这段代码中做错了什么? – 2014-09-01 22:06:10

+1

对于API> 11,缺少AFAIR @ style/ActionBar。有关详细信息,请参阅https://developer.android.com/training/basics/actionbar/styling.html – 2014-09-01 22:13:11

回答

14

在你的ActionBar风格中,删除android:background,只保留background属性。还要确保在应用程序标记中或在AndroidManifest.xml文件中扩展操作栏的活动中实现您的AppTheme。我还在Widget.AppCompat之前添加了“@ style /”属性,因为它是在android库中定义的默认样式。

您的代码应该是这样的:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="actionBarStyle">@style/ActionBar</item> 
</style> 

<!-- Action Bar Styles --> 
<style name="ActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="background">#0000ff</item> 
</style> 
+1

注意同时使用“** android:** actionBarStyle”和“actionBarStyle”名称以与背景命名空间兼容 – 2015-12-10 13:09:55

0

您可以SE这从代码以及

ab.setBackgroundDrawable(新ColorDrawable(newcolor) );

万一您的XML不工作

+0

我想以XML形式使用它,所以我可以使用颜色应用程序范围,并且我不必为每个活动添加该行。 – 2014-09-01 22:12:35

+0

在这里你去 <样式名称= “MyActionBar” 父= “@安卓风格/ Widget.Holo.Light.ActionBar”> <项目名称= “机器人:背景”> ANY_HEX_COLOR_CODE 其中的一个原因是无法正常工作是因为对于样式标记,您的父级错误 – Amrut 2014-09-01 22:17:10

+0

仍然没有工作 – 2014-09-01 22:23:04

0

根据这个链接,https://developer.android.com/reference/android/R.attr.html#background 似乎不取色资源,让你无论是给它一个十六进制颜色值,或创建一个使用颜色绘制你要。你可以尝试下面的选择来看看它是否有效。

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="actionBarStyle">@style/ActionBar</item> 
</style> 

<!-- Action Bar Styles --> 
<style name="ActionBar" parent="Widget.AppCompat.ActionBar"> 
    <item name="android:background">#0000ff</item> 
    <item name="background">#0000ff</item> 
</style> 
+0

使用构建工具21.1.2,它不允许直接给主题添加颜色。你*有*使用'@ color'或'@ drawable'给它。 – 2015-07-31 23:06:59