被选中状态覆盖的Android Ripple效果

在寻找一段时间之后,我无法find答案……

我有一个带有物品的回收者视图,当选择这些物品时,它们具有红色背景和白色文本(事先背景为白色,文本为黑色)。 为此,我使用选择器。

我最近试图为此添加一个涟漪效果,但除非我长时间点击该项目,项目的背景将直接变为红色而没有波纹。 我假设这是因为选择器状态state_selected覆盖了sate_pressed上的纹波?

有谁知道有没有办法解决这个问题? 这是我使用的选择器代码:

          

提前致谢!

要创建具有涟漪效果并显示所选状态的选择器背景,请执行以下操作:

首先定义您的高亮颜色,并具有一些透明度:

  • 值/ colors.xml
   #660000ff  

你可能想要兼容pre-lollipop。 将一个典型的老式选择器放在drawable文件夹中:

  • 绘制/ selector_background.xml
       

然后在drawable-v21文件夹中添加以下图层drawable:

  • 可绘制-V21 / selector_background.xml
                 

现在您可以使用@drawable/selector_background作为选择器。

如果你在frameLayout中包装你的recyclerview项目视图并设置FrameLayout的android:background =“?selectableItemBackground”和FrameLayout background的子布局=“@ drawable / background”会更好

background.xml

     

然后子布局必须具有属性android:duplicateParentState =“true”

所以我有另一个案例,我必须使用选择器以及层列表

                                          

如果您没有任何分层,那么根据您的需要,您可以使用您的项目形状替换波纹下的项目。 希望这可以帮助