Изменение цвета фона в панели действий, используя AppCompat

? Bombolo @ | Original: StackOverFlow
---

Я нашел несколько вопросов об этой проблеме во всем Интернете . К сожалению, все, что я стараюсь так далеко, не увенчались успехом .

Имеет звание сказать, мне нужно изменить цвет фона моего панели действий .

Проект имеет мин SDK 9, и максимальный SDK из 19 .

Я создать в моей папке RES / ценностей, файл XML:

red_actionbar.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">

        <item name="actionBarStyle">@style/MyActionBar</item>

    </style>

    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">


        <item name="background">@color/red</item>

    </style>

</resources>

colors.xml хранится в RES / значений

<resources>
   <color name="red">#FF0000</color>
</resources>

ичасть манифеста, где я изменить тему

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

Но ничего изменить .

Гдепроблема?

Приложение принять код, потому что, если я изменить

        <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">

to

        <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar ">

это изменить тему моего приложения, так что проблема находится в стиле, но я не знаю, HW ее решить

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle"   tools:ignore="NewApi">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>

</style>

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background"  tools:ignore="NewApi">@color/red</item>
    <item name="background">@color/red</item>
</style>

</resources>
---

Top 5 ответ

1Zohra Khan @

Try this:

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>

</style>

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">

    <item name="android:background">@color/red</item>
    <item name="background">@color/red</item>

</style>
2Blackbelt @
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background"  tools:ignore="NewApi">@color/red</item>
    <item name="background">@color/red</item>
</style>

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle"   tools:ignore="NewApi">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>

</style>

Вы нужны как android:background и background пунктов . Бывший для более новых версий Android, которые поддерживают ActionBar изначально. Последнее для пожилых андроид версии.

EDIT

вместо <resources> использования

<resources xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android">

From SDK 21

изменить Action Bar цвет фона, добавить к этому ActionBarTheme, и два цвета должны быть разными или она не будет работать ( благодаря @Dre и @lagoman )

<item name="colorPrimary">@color/my_awesome_red</item> 
<item name="colorPrimaryDark">@color/my_awesome_darker_red</item>