【问题标题】:Delete ripple effect on recycler view item click programmatically以编程方式删除对回收站视图项目单击的涟漪效应
【发布时间】:2021-04-13 17:10:25
【问题描述】:

我需要以编程方式删除对回收站视图项单击的涟漪效应。这是因为我在我的应用程序的几个活动中重用了适配器,但是有一个特定的项目不应该是可点击的,因此我需要删除涟漪效应,否则它看起来应该在点击时做一些事情,但它不工作。

唯一有效的方法是删除

android:foreground="?attr/selectableItemBackground"

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

【问题讨论】:

    标签: android


    【解决方案1】:

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

    所以从改变你的适配器构造函数开始:

    MyAdapter(boolean shouldRipple)
    

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

    onBindViewHolder {
    
        itemView.setForeground(...)
    }
    

    【讨论】:

      【解决方案2】:

      你可以做一件事。除了通过 XML 设置android:foreground,您可以通过编程方式设置它。

      当您不需要此前景(波纹效果)时,只需设置null。当你需要这个时,你可以通过编程方式设置这个?attr/selectableItemBackground

      请参考 this 以编程方式设置它

      【讨论】:

        猜你喜欢
        • 2017-05-23
        • 2019-03-28
        • 1970-01-01
        • 1970-01-01
        • 2018-05-10
        • 2021-06-27
        • 2016-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多