禁用ListView上的Ripple

时间:2014-11-29 20:43:01

标签: android android-5.0-lollipop rippledrawable

在Android 5.0中,单击列表项时,我的ListView会产生连锁反应。有没有办法禁用这种效果?查看文档,我看不出任何方式(https://developer.android.com/reference/android/widget/ListView.html

3 个答案:

答案 0 :(得分:31)

您可以使用android:listSelector属性删除或替换列表选择器。材料下的默认列表选择器为?android:attr/selectableItemBackground,这是一个有界纹波。

<ListView
    ...
    android:listSelector="@drawable/my_list_selector" />

要完全禁用选择器,您可以使用@null@android:color/transparent(适用于某些Android版本)值,如下所示:

<ListView
    ...
    android:listSelector="@android:color/transparent" />

答案 1 :(得分:18)

尝试:

<ListView
...
    android:listSelector="@android:color/transparent" />

这将禁用任何触摸的视觉效果。对用户来说不是很好,但在特殊情况下可能会有用。

答案 2 :(得分:0)

是的,您可以使用其布局创建自定义列表项,您必须使用不带纹波的可绘制更改android:background