J'essaie d'implémenter ActionBarSherlock car on m'a dit qu'il est relativement facile à implémenter et à personnaliser. J'ai trouvé qu'il était assez facile à implémenter, mais j'essaie de changer la couleur d'arrière-plan de l'ActionBar et cela s'avère difficile.
Selon le site ( link ), il semble que vous puissiez hériter de l'un des thèmes d'ActionBarSherlock, puis remplacer les propriétés dont vous avez besoin.
Voici ce que j'ai jusqu'à présent:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="Theme.ActionBar" parent="Theme.Sherlock.ForceOverflow">
<item name="Android:background">#000000</item>
<item name="background">#000000</item>
</style>
</resources>
Je remarque que le thème intégré utilise des images pour l'arrière-plan, mais je prie pour ne pas avoir à créer d'images pour changer la couleur d'arrière-plan.
Merci.
La couleur d'arrière-plan de la barre d'action est définie dans un style pour la barre d'action, pas dans le thème lui-même. Vous devrez faire quelque chose comme ceci:
<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow">
<item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<item name="Android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
</style>
<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="Android:background">#ff000000</item>
<item name="background">#ff000000</item>
</style>
Soyez prudent en utilisant des couleurs définies en XML. ColorDrawable
n'a pas respecté ses limites de vue sur pré-Honeycomb, donc si vous utilisez la navigation par onglets avec un arrière-plan distinct pour la vue des onglets empilés, vous aurez des problèmes.
Je viens d'utiliser
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00853c")));
Cela a changé la couleur de fond. J'espère que cela aide.
Le code mentionné par Jake Wharton est vrai. Mais lorsque vous appliquez le code à styles.xml, cela peut ne pas fonctionner si vous avez minSDK <11 car Android: actionBarStyle est pris en charge dans API-11 +
Pour résoudre cette erreur:
Créez un dossier de valeurs-v11 dans votre dossier res et créez le fichier XML comme mentionné ci-dessus.