在 ListView 上禁用波纹

Posted

技术标签:

【中文标题】在 ListView 上禁用波纹【英文标题】:Disable Ripple on ListView 【发布时间】:2015-01-28 04:33:48 【问题描述】:

android 5.0 中,我的 ListView 在单击列表项时会产生涟漪效果。有没有办法禁用这个效果?查看文档,我没有看到任何方法 (https://developer.android.com/reference/android/widget/ListView.html)

【问题讨论】:

【参考方案1】:

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

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

要完全禁用选择器,您可以使用@null@android:color/transparent(对某些Android 版本效果更好)值如下:

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

【讨论】:

这消除了涟漪,而是给了我一个黄色背景。我改用这个:android:listSelector="@android:color/transparent"【参考方案2】:

试试:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

这只涵盖了波纹......大部分时间都有效,除非您的列表项需要半透明背景

以上是关于在 ListView 上禁用波纹的主要内容,如果未能解决你的问题,请参考以下文章

禁用 Android ListView 项目上的点击事件

android 怎么禁用ListView的点击事件

具有彩色背景和波纹效果的列表视图选择器

Android:如何禁用 ListView?

如何禁用在android中单击ListView?

当您一直滚动到 ListView.builder 的顶部时,如何禁用动画