J'ai utilisé le thème AppCompat Light DarkActionBar pour mon application.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
Est-il possible de changer la couleur d'arrière-plan et la couleur du texte de cette ActionBar? Si oui, comment?
Le code suivant vous permettra de styliser complètement la barre d'action.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarStyle">@style/Widget.AppTheme.ActionBar</item>
<item name="actionBarTheme">@style/ThemeOverlay.AppTheme.ActionBar</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppTheme.PopupMenu</item>
</style>
Remplacez le style de la barre d'action pour modifier la couleur ou l'élévation de l'arrière-plan.
<style name="Widget.AppTheme.ActionBar" parent="Widget.AppCompat.ActionBar.Solid">
<!-- action bar background - without Android prefix -->
<item name="background">...</item>
<!-- action bar elevation - without Android prefix -->
<item name="elevation">4dp</item>
</style>
Remplacez le thème de la barre d'action pour définir un comportement spécial pour toutes les vues à l'intérieur de la barre d'action telles que les éléments d'action, la couleur d'arrière-plan ondulée, la couleur du texte.
<style name="ThemeOverlay.AppTheme.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<!-- title text color -->
<item name="Android:textColorPrimary">...</item>
<!-- subtitle text color -->
<item name="Android:textColorSecondary">?android:textColorPrimary</item>
<!-- action menu item text color -->
<item name="actionMenuTextColor">?android:textColorPrimary</item>
<!-- action menu item icon color -->
<item name="colorControlNormal">?android:textColorPrimary</item>
</style>
Vous pouvez également modifier le thème contextuel.
<style name="ThemeOverlay.AppTheme.PopupMenu" parent="ThemeOverlay.AppCompat.Dark">
<!-- popup menu background - NEVER "Android:background" !!! in themes -->
<item name="Android:colorBackground">...</item>
<!-- popup menu item text color -->
<item name="Android:textColorPrimary">...</item>
</style>
En revanche, le code suivant vous permettra de styliser la fenêtre .
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- window background - NEVER "Android:background" in themes !!! -->
<item name="Android:windowBackground">...</item>
<item name="Android:textColorPrimary">...</item>
<item name="Android:textColorSecondary">...</item>
</style>
Vous pouvez également modifier directement la couleur du texte dans la barre d'action. Mais méfiez-vous! Cela n'affectera pas la couleur du texte des éléments de menu ou des icônes ou la couleur d'ondulation! Ce n'est probablement pas ce que vous voulez à long terme.
<style name="Widget.AppTheme.ActionBar" parent="Widget.AppCompat.ActionBar.Solid">
<!-- title text color -->
<item name="titleTextColor">?android:textColorPrimary</item>
<!-- subtitle text color -->
<item name="subtitleTextColor">?android:textColorSecondary</item>
</style>
Oui, il est possible de changer la couleur du texte sur la barre d'action. Ajoutez ceci dans votre activité onCreate:
actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));