我在适配器类中尝试了以下代码,但无法正常工作。
myViewHolder.cardview1.setStrokeColor(ContextCompat.getColor(context, R.color.selected_color));
答案 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
方法。