Android:设置操作栏背景颜色

时间:2015-04-02 02:10:13

标签: android

我知道有很多关于此的问题,但我无法弄清楚我的风格有什么问题。

这是我的清单:

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

在values \ styles.xml中,我有(编辑,根据下面的答案,我将颜色移动到资源)。

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

<!-- ActionBar styles -->
  <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/white</item>
</style>
</resources>

并添加了res / values / color.xml文件,其中包含:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#ffffff</color>
</resources>

如果我将第一个样式的行改为:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

这确实会反射并使条形变暗。

为什么我的操作栏没有设置为白色?

编辑1:如果有帮助,我的minSdkVersion为16,而我的targetSdkVersion为21。

3 个答案:

答案 0 :(得分:1)

<!-- ActionBar styles -->
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">#FFFFFF</item> 
</style>

android:background属性仅接受参考值,您正在插入原始颜色值,因此将被忽略。改为创建颜色资源并指向该资源 <item name="android:background">@color/white</item>

答案 1 :(得分:1)

我认为这就是你所需要的:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/app_color_Primary</item>
    <item name="colorPrimaryDark">@color/app_color_primary_dark</item>
    <item name="colorAccent">@color/app_color_accent</item>
    ...
</style>

答案 2 :(得分:1)

您也可以动态设置ActionBar的背景颜色。示例:

final ActionBar actionBar = getActionBar();
final int actionBarColor = getResources().getColor(R.color.green);
actionBar.setBackgroundDrawable(new ColorDrawable(actionBarColor));

注意:我已经在values /中创建了一个名为color.xml的新文件,并为tag&#39; green&#39;定义了一个颜色值。像:

<color name="green">#8CBE41</color>

希望它会有所帮助。