编程删除Recycler View项单击的涟漪效果

3
我需要以编程方式删除在Recycler View项点击时出现的涟漪效果。这是因为我在我的应用程序的几个活动中重复使用适配器,但有一个特定的活动,其中的项不应该可点击,因此我需要删除涟漪效果,否则它看起来应该会在单击时做些什么,但实际上并不起作用。
唯一的解决方法是删除。
android:foreground="?attr/selectableItemBackground"

关于视图持有者,但正如我所说,我不能这样做,因为我正在重复使用它,并且它应该在其他活动中显示水波纹效果。有没有一种方法可以从特定的活动中禁用它?

2个回答

1
你可以做一件事情。不要通过XML设置android:foreground,而是通过编程方式设置。每当你不需要这个前景(涟漪效果)时,只需将其设置为null。当你需要它时,就可以通过编程方式设置为?attr/selectableItemBackground。参考this以进行编程设置。

1

您应该让适配器接受一个参数,以确定是否显示涟漪效果。

因此,首先更改适配器的构造函数:

MyAdapter(boolean shouldRipple)

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

onBindViewHolder {

    itemView.setForeground(...)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接