我从支持库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类):