以编程方式设置材料芯片的背景色

Gan*_*rya 3 android material android-chips material-components-android

Chip chip = new Chip(context);
chip.setBackgroundcolor(getResources().getColor(R.color.blue));
Run Code Online (Sandbox Code Playgroud)

上面的行给出了错误:

java.lang.UnsupportedOperationException: Do not set the background resource; Chip manages its own background drawable.
Run Code Online (Sandbox Code Playgroud)

Sob*_*per 19

对于 Kotlin,你应该使用这个:

chip.chipBackgroundColor = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.yourColor))
Run Code Online (Sandbox Code Playgroud)

对于 Java:

chip.setChipBackgroundColor(ColorStateList.valueOf(ContextCompat.getColor(context, R.color.yourColor)));
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以通过以下行(Kotlin)设置材料芯片的背景色

chip.chipBackgroundColor = getColorStateList(/*your preferred color*/)
Run Code Online (Sandbox Code Playgroud)

  • 以下代码对我有用:Chip.setChipBackgroundColorResource(R.color.colorBlue); (2认同)

小智 6

  • 尝试这个:
chip.setChipBackgroundColor(getResources().getColorStateList(R.color.Green));
Run Code Online (Sandbox Code Playgroud)


Gab*_*tti 6

使用方法setChipBackgroundColorResource

chip.setChipBackgroundColorResource(R.color.chip_selector_color);
Run Code Online (Sandbox Code Playgroud)

否则使用该方法 setChipBackgroundColor

chip.setChipBackgroundColor(AppCompatResources.getColorStateList(context, R.color.chip_selector_color));
Run Code Online (Sandbox Code Playgroud)