Android 使用选择器时会消除默认涟漪效应

Android 使用选择器时会消除默认涟漪效应,android,listview,selector,ripple,Android,Listview,Selector,Ripple,我有一个列表视图,默认情况下具有正常的android涟漪效果。当我触摸一个元素时,它会显示动画。我没有为此在xml代码中添加任何内容 但现在我想为父布局使用选择器,因为我想在上下文操作栏中选择它时高亮显示它。令人惊讶的是,连锁反应消失了 我的XML for Selector很简单,如下所示: <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:stat

我有一个列表视图,默认情况下具有正常的android涟漪效果。当我触摸一个元素时,它会显示动画。我没有为此在xml代码中添加任何内容

但现在我想为父布局使用选择器,因为我想在上下文操作栏中选择它时高亮显示它。令人惊讶的是,连锁反应消失了

我的XML for Selector很简单,如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:state_activated="true" android:drawable="@color/listview_highlight"/>
    <item android:drawable="@color/listview_normal" />

</selector>

我发现你可以用

但这需要一个Api min 21

我想像过去一样将动画设置为默认值


如何执行此操作?

您需要创建两个选择器:

将当前选择器保留在
values
文件夹中,并将文件添加到
values-v21


然后,您可以在
values-v21
中添加
,最后我通过执行try/error找到了解决方案。 我只需要补充一下

android:drawSelectorOnTop=“true”

给我的ListView,瞧

现在一切都很好,希望这篇文章能帮助一些人

但是APIL21下的用户不会得到任何点击效果,即使是正常的android标准点击效果,不是吗?因为当我使用这个选择器时,点击效果完全消失了,这很有帮助,但是我有纯色,所以在保持它为真时背景视图不会出现。所以我从代码层管理它。。。如果(Build.VERSION.SDK_INT>=Build.VERSION_code.LOLLIPOP){listview.setDrawSelectorOnTop(true);}。