以编程方式删除循环器视图项目单击上的涟漪效应



我需要以编程方式删除循环器视图项目点击的连锁反应。这是因为我在应用程序的几个活动中重复使用了适配器,但有一个特定的活动中,项目不应该是可点击的,因此我需要删除连锁反应,否则它看起来应该在点击时做一些事情,但它不起作用。

它的唯一工作方式是删除

android:foreground="?attr/selectableItemBackground"

在视图持有者上,但正如我所说,我不能这样做,因为我正在重用它,它应该在其他几个活动中显示连锁反应。有没有办法从特定的活动中禁用它?

您应该让适配器接受一个参数,该参数决定是否显示波纹。

因此,从更改适配器构造函数开始:

MyAdapter(boolean shouldRipple)

然后您可以在onBindViewHolder:中设置项目前景

onBindViewHolder {
itemView.setForeground(...)
}

你可以做一件事。您可以用程序设置android:foreground,而不是用XML设置。

只要您不需要此前景(波纹效果(,只需设置null即可。当你需要这个时,你可以用程序设置这个?attr/selectableItemBackground

参考这个以程序方式设置

最新更新