user2711001
user2711001

Reputation: 37

Applying ripple to custom pop up menu

I have created a custom pop up menu. It is rounded. But the ripple is still square

<style name="RoundPopUpMenu" parent="@style/Widget.AppCompat.Light.PopupMenu">
        <item name="android:popupBackground">@drawable/popupmenu_bg</item>

    </style>

popupmenu_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:top="6dp"
        android:bottom="6dp">
        <shape
            android:shape="rectangle">
            <stroke
                android:color="@color/rounded_card_bg"
                android:width="1px" />
            <padding
                android:top="6dp"
                android:bottom="6dp" />
            <corners
                android:radius="24dp" />
            <solid
                android:color="@color/rounded_card_bg" />
        </shape>
    </item>
</layer-list>

How can i customise the ripple. I already tried changing dropdownselector to a custom drawable it does n't work

the custom drop down selector drawable code :

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:top="6dp"
        android:bottom="6dp">
        <shape
            android:shape="rectangle">
            <stroke
                android:color="?attr/listChoiceBackgroundIndicator"
                android:width="1px" />
            <padding
                android:top="6dp"
                android:bottom="6dp" />
            <corners
                android:radius="24dp" />
            <solid
                android:color="?attr/listChoiceBackgroundIndicator" />
        </shape>
    </item>
</layer-list>

Upvotes: 1

Views: 584

Answers (1)

Frusty
Frusty

Reputation: 11

Style:

<style name="PopupMenuItemStyle" parent="Widget.AppCompat.PopupMenu">
        <item name="android:textColor">@color/WHITE</item>
        <item name="android:background">@drawable/ripple_no_corners</item>
 </style>

ripple_no_corners:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/SELECTED">

    <item>
        <shape android:shape="rectangle">
            <solid
                android:color="@color/MAIN"></solid>

        </shape>
    </item>

</ripple>

Java class:

 Context wrapper = new ContextThemeWrapper(getContext(), R.style.PopupMenuItemStyle);
              PopupMenu popupMenu = new PopupMenu(wrapper, v);

Upvotes: 1

Related Questions