Android 无法更改操作栏的背景色

Android 无法更改操作栏的背景色,android,android-actionbar,Android,Android Actionbar,我已经尝试查看以下线程以找到问题的答案: …但这些解决方案都没有帮助我解决问题 我正在尝试更改actionbar的背景色(除其他外)。到目前为止,我已经能够改变其他一切的风格。以下是my styles.xml: <resources> <!-- Base application theme. --> <style name="AppTheme" parent="@android:style/Theme.Holo.Light">

我已经尝试查看以下线程以找到问题的答案:

…但这些解决方案都没有帮助我解决问题

我正在尝试更改actionbar的背景色(除其他外)。到目前为止,我已经能够改变其他一切的风格。以下是my styles.xml:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
        <item name="actionBarStyle">@style/AppTheme.ActionBar</item>
        <item name="android:windowBackground">@color/dark_green</item>
        <item name="android:buttonStyle">@style/AppTheme.Button</item>
        <item name="android:editTextStyle">@style/AppTheme.EditText</item>
        <item name="android:listViewStyle">@style/AppTheme.ListView</item>
        <item name="android:windowActionBar">true</item>
        <!--<item name="android:colorBackground">@color/dark_green</item>-->
    </style>

    <style name="AppTheme.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@color/dark_green</item>
        <item name="background">@color/dark_green</item>
        <item name="android:colorPrimary">@color/dark_green</item>
        <item name="android:colorPrimaryDark">@color/dark_green</item>
    </style>

    <!-- Button theme -->
    <style name="AppTheme.Button">
        <item name="android:background">@drawable/background_button</item>
        <item name="android:textColor">@android:color/white</item>
        <item name="android:padding">20dp</item>
    </style>

    <!-- Edit Text Theme -->
    <style name="AppTheme.EditText">
        <item name="android:background">@drawable/background_edittext</item>
        <item name="android:padding">14dp</item>
        <item name="android:layout_marginBottom">16dp</item>
        <item name="android:textColorHint">@color/light_gray</item>
        <item name="android:textCursorDrawable">@null</item>
        <item name="android:textSize">20dp</item>
    </style>

    <style name="AppTheme.ListView">
        <item name="android:textColor">@color/text_color</item>
        <item name="android:divider">@android:color/transparent</item>
    </style>

    <declare-styleable name="FixedAspectRatioFrameLayout">
        <attr name="aspectRatioWidth" format="dimension" />
        <attr name="aspectRatioHeight" format="dimension" />
    </declare-styleable>
</resources>

@style/AppTheme.ActionBar
@style/AppTheme.ActionBar
@颜色/深绿色
@style/AppTheme.Button
@style/AppTheme.EditText
@style/AppTheme.ListView
真的
@颜色/深绿色
@颜色/深绿色
@颜色/深绿色
@颜色/深绿色
@可绘图/背景按钮
@android:彩色/白色
20dp
@可绘制/背景/编辑文本
14dp
16dp
@颜色/浅灰色
@空的
20dp
@颜色/文字颜色
@android:彩色/透明
这是我的Android清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="io.myapp.app">

    <!-- To auto-complete the email text field in the login form with the user's emails -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/myapp_button"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".LoginActivity"
            android:label="@string/title_activity_login" />
        <activity
            android:name=".HomeActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".ListOffersActivity"
            android:parentActivityName=".HomeActivity"
            android:launchMode="singleTop"/>
        <activity
            android:name=".ViewOfferActivity"
            android:label="@string/title_activity_view_offer"
            android:parentActivityName=".ListOffersActivity">
        </activity>
        <activity
            android:name=".SettingsActivity"
            android:label="@string/title_activity_settings"
            android:parentActivityName=".HomeActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="io.myapp.app.HomeActivity" />
        </activity>
        <activity android:name=".ListSavedOffersActivity"
            android:label="Saved Offers"
            android:parentActivityName=".HomeActivity"
            android:launchMode="singleTop"></activity>
    </application>

</manifest>

当应用程序启动时,如果您想使用Java设置任何视图的样式,您必须在几毫秒内牺牲显示ActionBar样式的轻微闪烁,因为它根据样式资源上的布局定义设置布局

如果您想隐藏Java,它将在开始时显示actionbar的闪烁

在其他造型案例中也是如此


因此,最好从
style.xml
中设置样式,但如果稍微闪烁一下就可以使用Java。

好吧,经过几天的摆弄,我发现问题主要是因为android(具有新的材质主题和所有…)在更改以下属性时更改了actionbar中的颜色:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:colorPrimary">@color/dark_green</item>
        <item name="android:colorPrimaryDark">@color/darker_green</item>
</style>

@颜色/深绿色
@颜色/深绿色

这将操作栏的颜色正确设置为
@color/深绿色

您使用
Holo
主题而不是
AppCompat
?这两个示例都使用
主题。AppCompat
主题作为基本主题。您在代码中使用了旧的
主题.Holo
。我没有理由使用Holo。我更新了代码,使其使用AppCompat,如其他答案所示,但我仍然有相同的问题。有趣的是。。。如果我在活动中这样做:
ActionBar=getActionBar();杆.立根拉深(新的彩色拉深(安卓.R.彩色.白色))…它只能在单个活动中工作,请使用AppCompat主题发布您的样式,这样我们就可以抓住任何可能的错误。请参阅下面我的答案。我终于解决了这个问题。我应该注意的是,这些项目应该添加到我之前使用的向后兼容的操作栏样式之外。