Я расширил класс Chip из библиотеки поддержки 28, чтобы добавить некоторую функциональность, и теперь каждый созданный мной Chip игнорирует мой атрибут chipstyle моей темы и обращается к атрибуту по умолчанию.
Это мой расширенный класс (я толькорасширить, чтобы определить, является ли это моим специальным классом, поэтому код не находится внутри)
class ExclusiveChip @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : Chip(context, attrs, defStyleAttr) {
}
параметры стиля:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="chipStyle">@style/ChipStyle</item>
</style>
<style name="ChipStyle" parent="Widget.MaterialComponents.Chip.Action">
<item name="checkedIconEnabled">false</item>
<item name="chipIconSize">16dp</item>
<item name="chipStrokeColor">@color/chip_stroke_color</item>
<item name="chipStrokeWidth">1dp</item>
<item name="chipBackgroundColor">@color/chip_color</item>
<item name="android:textAppearance">@style/ChipText</item>
</style>
сравнение (слева, мое расширение, справа, оригинальный класс Chip без стиля)атрибуты):