31

I am working on an app which will be full-screen, but will utilize some of the functionalities of the ActionBar. With the Ice Cream Sandwhich release, I see that I get a blue line divider/separator as part of the ActionBar. Normally, it would be good for consistency, but in my case I need to remove the divider.

How can I remove or style the divider of the ActionBar in ICS?

Tried setting a custom theme with "android:style/Widget.Holo.ActionBar" as parent. However, settings such as the one below has no effect

<item name="android:divider">#FFFFFF</item>
dparnas
  • 4,090
  • 4
  • 33
  • 52
  • This may help: http://stackoverflow.com/questions/6072226/how-to-style-the-menu-items-on-an-android-action-bar Also, did you remember to select your custom theme in the Manifest or your code? – Per Christian Henden Jan 03 '12 at 19:08

4 Answers4

65

The graphic asset containing the blue bottom line is the background of the action bar's container view and is set to @android:drawable/ab_transparent_dark_holo when using the default Holo Dark theme.

To remove this line, you'll need to create a custom style for your action bar (based on Widget.Holo.ActionBar or Widget.Holo.Light.ActionBar (or the .Solid variants) and set the android:background to something that doesn't include the bottom border:

<style name="MyTheme" parent="android:Theme.Holo">
  <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="android:Widget.Holo.ActionBar">
  <item name="android:background">@drawable/your_background_here</item>
</style>

Note: Holo Dark/Light action bars have solid and transparent styles; this blue line appears by default for the transparent style. Holo Dark action bars are transparent by default and Holo Light action bars are solid by default.

Roman Nurik
  • 29,665
  • 7
  • 84
  • 82
  • the android:Theme.Holo is only for API 11. How can I do this for older APIs. – androidevil Jul 31 '13 at 18:25
  • 9
    Note: setting `@android:color/transparent` will remove the divider. – Chris Lacy Apr 07 '14 at 01:27
  • 1
    As @androider said only for API 11. To use it for lower API use support library v7. For the first block `parent="Widget.AppCompat.Light"`for the second block `parent="Widget.AppCompat.Light.ActionBar"` (or instead of Light Base or Dark) You will also need to use `` instead of `` – Shishi May 22 '14 at 09:45
2

Here is a simple way to remove the divider, works from API 07 using the actionbarcompat from the support library:

@Override
public void onCreate(Bundle savedInstanceState) {
        //...
        getSupportActionBar().setBackgroundDrawable(
            getResources().getDrawable(R.drawable.whatever_you_want));
        //...
}  
Amir Uval
  • 14,425
  • 4
  • 50
  • 74
1

Changing the activity theme to Theme.Holo.Light.DarkActionBar removes the blue line.

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:textColor">@android:color/white</item>
</style>

If you still want a black background you may want to change android:windowBackground and/or android:textColor

repkap11
  • 757
  • 7
  • 9
-2

add this <item name="android:windowContentOverlay">@null</item> to your app theme.

smileVann
  • 554
  • 1
  • 6
  • 15