J'ai trouvé quelques questions sur ce problème sur le Web. Malheureusement, tout ce que j'ai essayé jusqu'à présent n'a pas abouti.
Est-ce que le titre dit, je dois changer la couleur de fond de ma barre d'action.
Le projet a un sdk minimum de 9 et un sdk maximum de 19.
J'ai créer dans mon dossier res/values un fichier 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>
le colors.xml stocké dans res/values
<resources>
<color name="red">#FF0000</color>
</resources>
et la partie du manifeste où je change de thème
<application
Android:allowBackup="true"
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/CustomActionBarTheme" >
Mais rien ne change. Où est le problème? L'application accepte le code car si je change cela:
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
à
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar ">
cela change le thème de mon application, donc le problème est dans le style mais je ne sais pas comment le résoudre.
<?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>
<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>
vous avez besoin des deux Android:background
et background
éléments. Le premier est pour les versions plus récentes de Android qui supporte ActionBar de manière native. Le dernier est pour les anciennes Android versions.
MODIFIER
au lieu de <resources>
utilisation
<resources xmlns:tools="http://schemas.Android.com/tools" xmlns:Android="http://schemas.Android.com/apk/res/Android">
À partir du SDK 21
pour changer la couleur d'arrière-plan de la barre d'action, ajoutez ceci à ActionBarTheme, et les deux couleurs doivent être différentes ou cela ne fonctionnera pas (grâce à @Dre
et @lagoman
)
<item name="colorPrimary">@color/my_awesome_red</item>
<item name="colorPrimaryDark">@color/my_awesome_darker_red</item>
Essaye ça:
<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>
Essaye ça.
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary"> #6699FF </item>
</style>
Vous pouvez changer #6699FF
coloriez selon votre choix (ou utilisez une ressource de couleur).
essayez d'utiliser
parent="Theme.AppCompat.Light"
au lieu de
parent="@style/Theme.AppCompat.Light"