【问题标题】:OnTouch Listener removes round corners on CardViewOnTouch Listener 移除 CardView 上的圆角
【发布时间】:2019-03-11 13:02:28
【问题描述】:

我将onTouchListener 添加到我的RecyclerView 适配器中,它可以很好地更改颜色,但它也删除了RecyclerView 的圆角。您可以在屏幕截图中看到它。

代码如下:

holder.cardViewRemaining.setOnTouchListener((v, event) -> {
        if(event.getAction() == MotionEvent.ACTION_DOWN)
        {
            v.setBackgroundColor(Color.parseColor("#f0f0f0"));
        }
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL)
        {
            v.setBackgroundColor(Color.WHITE);
        }
        return false;
    });

【问题讨论】:

  • 你能更明确地说明问题是什么吗?

标签: android android-recyclerview android-cardview


【解决方案1】:

你需要使用setCardBackgroundColor()

holder.cardViewRemaining.setOnTouchListener((v, event) -> {
        if(event.getAction() == MotionEvent.ACTION_DOWN)
        {
            holder.cardViewRemaining.setCardBackgroundColor(Color.parseColor("#f0f0f0"));
        }
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL)
        {
            holder.cardViewRemaining.setCardBackgroundColor(Color.WHITE);
        }
        return false;
    });

【讨论】:

    【解决方案2】:

    How to programmatically round corners and set random background colors

    看来,您应该检索背景可绘制对象并设置其颜色,而不是使用setBackgroundColor 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      相关资源
      最近更新 更多