如何以编程方式为com.google.android.material.card.MaterialCardView设置StrokeColor

时间:2019-08-29 11:24:09

标签: android xml material-design android-cardview material-components-android

我在适配器类中尝试了以下代码,但无法正常工作。

myViewHolder.cardview1.setStrokeColor(ContextCompat.getColor(context, R.color.selected_color));

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,只需添加invalidate()方法即可解决:

myViewHolder.cardview1.setStrokeColor(ContextCompat.getColor(context, R.color.selected_color));
myViewHolder.cardview1.invalidate();

这将更新视图。

答案 1 :(得分:0)

只需使用setStrokeColor方法:

MaterialCardView cardView = findViewById(R.id.card);
cardView.setStrokeColor(ContextCompat.getColor(this, R.color.yourAccent));

您必须设置笔触的宽度,因为默认的值为0

<com.google.android.material.card.MaterialCardView
    android:id="@+id/card"
    app:strokeWidth="2dp"
    ..>

否则,请使用setStrokeWidth方法。

enter image description here

相关问题