我创建了两个使用Drawables
的简单ripple
,并应用于RecylerView
生成的按钮列表。
可绘制的一个:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#ffffffff">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@android:color/doesnt_matter" />
<corners android:radius="3dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle" android:padding="3dp">
<solid android:color="@color/store_closed"/>
<corners android:radius="3dp"/>
</shape>
</item>
</ripple>
Drawable Two:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#ffffffff">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@android:color/doesnt_matter" />
<corners android:radius="3dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle" android:padding="3dp">
<solid android:color="@color/store_closed"/>
<corners android:radius="3dp"/>
</shape>
</item>
</ripple>
在我的适配器中,我已将其设置在按钮背景将设置为两个drawable之一的位置,具体取决于任意布尔值。
if (isStoreOpen) {
storeOpen.setBackground(bgStoreOpen);
} else {
storeOpen.setBackground(bgStoreClosed);
}
不幸的是,我通过按钮得到了一些奇怪的行为。有时,涟漪根本不会出现,有时涟漪会出现在RecyclerView中它下方的按钮上。这是一个关于发生了什么的视频(注意我点击了底部按钮):https://www.dropbox.com/s/ge5u7r7q2rfstnk/weirdRipples.mp4?dl=0
有什么想法吗?感谢您的帮助,如果您需要更多代码,请告诉我们!