我有一个使用自定义弹出菜单设置的微调器。此弹出菜单有圆角。当您在微调器中点击一个选项时,它会显示波纹背景动画,但是波纹会在圆角外部形成一个普通的矩形。我怎样才能使波纹保持在圆角矩形的边界内?
弹出式背景:
<?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"/>
微调:
<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"/>
下拉项目:
<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"/>
下拉项目背景:
<?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>
设置微调器:
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);
默认情况下,即使我删除了自定义波纹背景,这些项目也似乎已经有了波纹背景。