Search code examples
androidandroid-actionbarandroid-custom-view

How to remove divider from actionbar in Android?


I am integrating custom view for actionbar. However, I'm not able to remove divider of actionbar. Any suggestion would be appreciated. Thanks.

I apply theme in manifest like this:

<application
        android:theme="@style/AppTheme"
        ...

Inside themes.xml I have:

<style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
        <item name="android:textColorPrimary">@color/mytheme_primary</item>
        <item name="android:textColorSecondary">@color/mytheme_secondary</item>
        <item name="android:textColorTertiary">@color/mytheme_tertiary</item>
        <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
    </style>

<style name="AppTheme" parent="AppBaseTheme">
            <item name="android:windowActionBarOverlay">true</item>
            <item name="android:actionBarDivider">@android:color/transparent</item>
            <item name="android:ratingBarStyle">@style/RatingBarAppTheme</item>
            <item name="android:windowBackground">@android:color/transparent</item>
            <item name="android:colorBackgroundCacheHint">@null</item>
            <item name="android:actionBarStyle">@style/MyActionBar</item>
        </style>

        <!-- ActionBar styles -->
        <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
            <item name="android:background">@drawable/bg_action_bar</item>
            <item name="android:actionBarDivider">@android:color/transparent</item>
        </style>

Although I'm setting actionbar divider to be transparent from two parts but seems it doesn't take effect anyway :(

enter image description here


Solution

  • I have the same problem before. Set windowContentOverlay to null will make it has no divider.

    In your style xml file, put this:

    <item name="android:windowContentOverlay">@null</item>
    

    and become

        <style name="AppTheme" parent="AppBaseTheme">
            <item name="android:windowActionBarOverlay">true</item>
            <item name="android:actionBarDivider">@android:color/transparent</item>
            <item name="android:ratingBarStyle">@style/RatingBarAppTheme</item>
            <item name="android:windowBackground">@android:color/transparent</item>
            <item name="android:colorBackgroundCacheHint">@null</item>
            <item name="android:actionBarStyle">@style/MyActionBar</item>
            <item name="android:windowContentOverlay">@null</item>
        </style>