以编程方式设置 material 芯片的背景颜色
Set background color of the material chip programmatically
Chip chip = new Chip(context);
chip.setBackgroundcolor(getResources().getColor(R.color.blue));
上面一行报错:
java.lang.UnsupportedOperationException: Do not set the background resource; Chip manages its own background drawable.
您可以通过以下行 (Kotlin)
设置 material 芯片的背景颜色
chip.chipBackgroundColor = getColorStateList(/*your preferred color*/)
- 试试这个:
chip.setChipBackgroundColor(getResources().getColorStateList(R.color.Green));
对于 Kotlin,你应该使用这个:
chip.chipBackgroundColor = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.yourColor))
对于Java:
chip.setChipBackgroundColor(ColorStateList.valueOf(ContextCompat.getColor(context, R.color.yourColor)));
使用方法setChipBackgroundColorResource
:
chip.setChipBackgroundColorResource(R.color.chip_selector_color);
否则使用方法setChipBackgroundColor
chip.setChipBackgroundColor(AppCompatResources.getColorStateList(context, R.color.chip_selector_color));
在 xml
中使用 backgroundTint
<com.google.android.material.chip.Chip
android:id="@+id/timetext_id"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="40dp"
android:layout_weight="1"
android:backgroundTint="#39b8db"
android:gravity="center"
android:padding="5dp"
android:text="Time"
android:textAlignment="center"
android:textColor="@color/white" />
Chip chip = new Chip(context);
chip.setBackgroundcolor(getResources().getColor(R.color.blue));
上面一行报错:
java.lang.UnsupportedOperationException: Do not set the background resource; Chip manages its own background drawable.
您可以通过以下行 (Kotlin)
设置 material 芯片的背景颜色chip.chipBackgroundColor = getColorStateList(/*your preferred color*/)
- 试试这个:
chip.setChipBackgroundColor(getResources().getColorStateList(R.color.Green));
对于 Kotlin,你应该使用这个:
chip.chipBackgroundColor = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.yourColor))
对于Java:
chip.setChipBackgroundColor(ColorStateList.valueOf(ContextCompat.getColor(context, R.color.yourColor)));
使用方法setChipBackgroundColorResource
:
chip.setChipBackgroundColorResource(R.color.chip_selector_color);
否则使用方法setChipBackgroundColor
chip.setChipBackgroundColor(AppCompatResources.getColorStateList(context, R.color.chip_selector_color));
在 xml
中使用 backgroundTint <com.google.android.material.chip.Chip
android:id="@+id/timetext_id"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="40dp"
android:layout_weight="1"
android:backgroundTint="#39b8db"
android:gravity="center"
android:padding="5dp"
android:text="Time"
android:textAlignment="center"
android:textColor="@color/white" />