tomek550
tomek550

Reputation: 470

Android action bar overflow menu remove shadow

I'd like to remove shadow around my action bar overflow menu, but i haven't found any attributes allowing that. I'm extending Theme.AppCompat.

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat">
    <!-- Customize your theme here. -->
    <item name="actionOverflowButtonStyle">@style/OverflowButton</item>
    <item name="actionOverflowMenuStyle">@style/OverflowMenu</item>
    <item name="actionBarStyle">@style/MyActionBarLogo</item>
    <item name="android:dropDownListViewStyle">@style/PopupMenuListView</item>
    <item name="dropDownListViewStyle">@style/PopupMenuListView</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>
<style name="MyActionBarLogo" parent="Widget.AppCompat.ActionBar">
    <item name="background">@color/white</item>
    <item name="displayOptions">useLogo|showHome</item>

    <item name="elevation">0dp</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
<style name="OverflowButton" parent="@style/Widget.AppCompat.ActionButton.Overflow">
    <item name="android:src">@mipmap/menu_logo</item>
</style>
<style name="OverflowMenu" parent="@style/Widget.AppCompat.PopupMenu.Overflow">
    <item name="overlapAnchor">false</item>
    <item name="android:dropDownVerticalOffset">52dp</item>
    <item name="android:dropDownHorizontalOffset">10dp</item>
</style>
<style name="PopupMenuListView" parent="@style/Widget.AppCompat.ListView.DropDown">
    <item name="android:divider">@drawable/menu_divider</item>
    <item name="android:dividerHeight">1dp</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:background">@color/white</item>
</style>
<style name="PopupMenu" parent="@style/Widget.AppCompat.ListPopupWindow">
    <item name="android:popupBackground">@color/white</item>
</style>

https://i.sstatic.net/94fqF.jpg

Upvotes: 1

Views: 2007

Answers (2)

Pete Lada
Pete Lada

Reputation: 1318

You need to apply the zero elevation style to the correct element, in this case actionOverflowMenuStyle.

(This is using appcompat)

<style name="Theme.myapp" parent="Theme.AppCompat.Light">
    <item name="actionOverflowMenuStyle">@style/Theme.myapp.Widget.PopupMenu.Overflow</item>
</style>

Then

<style name="Theme.myapp.Widget.PopupMenu.Overflow" parent="Widget.AppCompat.PopupMenu.Overflow">
    <item name="elevation">0dp</item>
    <item name="android:popupElevation">0dp</item>
</style>

Upvotes: 1

NaviRamyle
NaviRamyle

Reputation: 4007

You can try solution this

getSupportActionBar().setElevation(0);

UPDATE

<style name="MyActionBarLogo" parent="Widget.AppCompat.ActionBar">
    <item name="background">@color/white</item>
    <item name="displayOptions">useLogo|showHome</item>

    <item name="elevation">0dp</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:actionDropDownStyle">@style/DropDownMenuStyle</item> 
</style>



<style name="DropDownMenuStyle" parent="Widget.AppCompat.Spinner.DropDown.ActionBar">
    <item name="android:background">@android:color/transparent</item>
</style> 

Upvotes: 1

Related Questions