无法更改ActionBar的背景颜色

bno*_*ite 2 android android-actionbar

我正在尝试更改Android应用的背景颜色,但我无法做到.我搜索了很多帖子,但没有解决方案解决了我的问题.

这是我的styles.xml:

<resources>

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

<style name="ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">#ff0000</item>
</style>


</resources>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我只是想将条形设置为红色.这是我的清单:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MenuActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
Run Code Online (Sandbox Code Playgroud)

正如您所见,主题已正确设置.只是你可以看到,这是我的傻瓜:

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    ...
    minSdkVersion 15
    targetSdkVersion 21



}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}
Run Code Online (Sandbox Code Playgroud)

所以,即使这看起来不错,也没有将我的ActionBar设置为红色.我试着跟随很多指南(包括官方指南),我已按照他们的说法做了一切.我错过了什么?感谢您提前耐心:)

rek*_*eru 8

既然您正在使用该AppCompat库,您也应该处理较旧的Android版本(就像使用该ActionBarSherlock库时一样):

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/ActionBar</item>
        <item name="actionBarStyle">@style/ActionBar</item>
    </style>

    <style name="ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@android:color/red</item>
        <item name="background">@android:color/red</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

没有android命名空间的项目用于设置旧版Android上使用的appcompat操作栏.

请参阅此答案以获取进一步参考

您还应该检查,您可能styles.xml为各种屏幕尺寸和sdk版本生成了更多文件.

您可能还希望将ActionBar样式声明添加到这些其他样式:看起来您的测试设备使用另一个样式,而不是默认样式.