2015-09-27 90 views
1

我已经查看了Android在线示例,并通过所有可用文档进行了详细阅读,但我仍然很困惑。我将Android SDK的版本19作为minSDK。我需要做的就是更改操作栏的背景颜色。我的代码出于某种原因似乎不起作用。更改操作栏的颜色

  1. 我希望应用程序其余部分的窗口背景颜色为白色。
  2. 我希望操作栏的背景为蓝色。

下面是我的资源文件:

<resources> 
    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light"> 
     <item name="android:windowBackground">@android:color/white</item> 
     <item name="android:actionBarStyle">@style/post_action_bar</item> 
    </style> 

    <style name="post_action_bar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
     <item name="android:background">@android:color/holo_blue_dark</item> 
     <item name="android:backgroundStacked">@android:color/holo_blue_dark</item> 
     <item name="android:backgroundSplit">@android:color/holo_blue_dark</item> 
     <item name="android:windowActionBar">true</item> 
     <item name="android:windowNoTitle">false</item> 
    </style> 
</resources> 

这是行不通的。该应用程序的其余部分是白色的,但我的酒吧有一个灰色的颜色。

回答

2

这是因为添加以下内容到AppTheme

<!-- colorPrimary is used for the default action bar background --> 
    <item name="colorPrimary">@color/my_awesome_color</item> 

注一样容易:这将工作预棒棒糖,只要你的主题的母公司是Theme.AppCompat和您的支持库ATLEAST V21 ,因此,如果您还没有已经更新支持的lib到在这个时候v23.0.1(我认为)的最新

compile 'com.android.support:appcompat-v7:23.0.1' 

this如果您想了解更多关于你的造型动作条,多

+0

colorPrimary在v21中不支持19 –

+0

@OlivierTwist您是否阅读了答案中的链接?让我引用这个“在较老的平台上,AppCompat在可能的情况下模拟颜色主题,目前这仅限于着色操作栏和一些小部件。” – freddieptf

+0

这意味着只要你的主题的父母来自Theme.AppCompat,它将工作之前-v21 – freddieptf

2

您可以尝试以编程方式在代码中设置类似

ActionBar ab = getActionBar(); 
    ab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#000000"))); 
+0

我想通过xml设置它而不是代码 –