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

Kan*_*nan 3 xml android material-design android-cardview material-components-android

我在适配器类中尝试了下面的代码,但它不起作用。

myViewHolder.cardview1.setStrokeColor(ContextCompat.getColor(context, R.color.selected_color));
Run Code Online (Sandbox Code Playgroud)

小智 8

我有同样的问题,要解决它只需添加invalidate()方法:

myViewHolder.cardview1.setStrokeColor(ContextCompat.getColor(context, R.color.selected_color));
myViewHolder.cardview1.invalidate();
Run Code Online (Sandbox Code Playgroud)

这会更新视图。


Gab*_*tti 4

只需使用以下setStrokeColor方法:

MaterialCardView cardView = findViewById(R.id.card);
cardView.setStrokeColor(ContextCompat.getColor(this, R.color....));
Run Code Online (Sandbox Code Playgroud)

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

<com.google.android.material.card.MaterialCardView
    android:id="@+id/card"
    app:strokeWidth="2dp"
    ..>
Run Code Online (Sandbox Code Playgroud)

否则使用该setStrokeWidth 方法。

在此输入图像描述