Android spinner 下拉项波纹背景

Tyc*_*aco 6 java android android-spinner material-design

我有一个带有自定义弹出菜单的微调器。这个弹出菜单有圆角。当您点击微调器中的选项时,它会显示波纹背景动画,但波纹会超出圆角并形成一个正常的矩形。我怎样才能使波纹保持在圆角矩形的边界内?

弹出背景:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
<solid android:color="@color/primaryLight2"/>
<corners android:radius="4dp"/>
Run Code Online (Sandbox Code Playgroud)

纺纱机:

<Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="24dp"
        android:layout_marginStart="4dp"
        android:gravity="start|center_vertical"
        android:popupBackground="@drawable/background_spinner_popup"
        android:textColor="@color/primaryText"
        android:textSize="18sp"/>
Run Code Online (Sandbox Code Playgroud)

下拉项:

<TextView android:id="@android:id/text1"
      style="@style/spinnerDropDownItemStyle"
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:ellipsize="marquee"
      android:padding="8dp"
      android:textSize="18sp"
      android:background="@drawable/background_spinner_item_dropdown"
      android:singleLine="true"
      android:textColor="@color/white"/>
Run Code Online (Sandbox Code Playgroud)

下拉项背景:

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

<!-- Default background -->
<item>
    <shape android:shape="rectangle">
        <corners android:radius="4dp"/>
    </shape>
</item>

<!-- Ripple bounds -->
<item android:id="@android:id/mask">
    <shape android:shape="rectangle">
        <corners android:radius="4dp"/>
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

设置微调器:

final Spinner spinner = (Spinner) rootView.findViewById(R.id.spinner);
ArrayAdapter arrayAdapter = ArrayAdapter.createFromResource(MainActivity.context, R.array.spinner, R.layout.item_spinner);
arrayAdapter.setDropDownViewResource(R.layout.item_spinner_dropdown);
spinner.setAdapter(arrayAdapter);
Run Code Online (Sandbox Code Playgroud)

默认情况下,这些项目似乎也已经具有波纹背景,即使我删除了自定义波纹背景。