Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ActionBarSherlock Back button color change ?

I am the using the ActionBarSherlock. I have the displayOption "homeAsUp" in my style.xml file. Now this shows a black arrow next to the title of the Activity. Since my theme is White on a blue blackground, i want to change the color of the black arrow, or maybe use a whole new icon resource in its place. How can i do this ?

Kind Regards.

like image 294
AndroidDev Avatar asked Jul 27 '12 06:07

AndroidDev


2 Answers

Further to Eric's answer - I wasted a lot of time getting this right.

Remember that these items must go in the parent application theme, inheriting from Theme.Sherlock or similar.

<!-- CUSTOM APP THEME -->
<style name="AppTheme" parent="Theme.Sherlock">
    <item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
    <item name="actionBarStyle">@style/AppTheme.ActionBarStyle</item>
    <item name="android:homeAsUpIndicator">@drawable/action_bar_ic_ab_back_holo_dark</item>
    <item name="homeAsUpIndicator">@drawable/action_bar_ic_ab_back_holo_dark</item>
</style>

Do not put them in the custom Action Bar theme inheriting from Widget.Sherlock.ActionBar.

<!-- ACTION BAR THEME -->
<style name="AppTheme.ActionBarStyle" parent="Widget.Sherlock.ActionBar">
    <item name="android:icon">@drawable/action_bar_logo</item>
    <item name="icon">@drawable/action_bar_logo</item>
    <item name="android:displayOptions">showHome</item>
    <item name="displayOptions">showHome</item>
</style>
like image 189
Richard Le Mesurier Avatar answered Sep 26 '22 00:09

Richard Le Mesurier


Be careful when you style ActionBarSherlock !

Here is an extract from the web site (ActionBarSherlock Theming):

Due to limitations in Android's theming system any theme customizations must be declared in two attributes. The normal android-prefixed attributes apply the theme to the native action bar and the unprefixed attributes are for the custom implementation. Since both theming APIs are exactly the same you need only reference your customizations twice rather than having to implement them twice.

So in your case you MUST define two item:

<item name="android:homeAsUpIndicator">@drawable/icon</item>

and

<item name="homeAsUpIndicator">@drawable/icon</item>

Then you are sure that ALL your users will have the same L&F

like image 44
Eric Taix Avatar answered Sep 24 '22 00:09

Eric Taix