我需要使用默认的材质样式创建自定义CheckBox。
我的班级定义如下
class CustomCheckBox @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : CheckBox(context, attrs, defStyleAttr) {
}
如果我查看默认CheckBox的属性,则它们定义了以下属性
background: @android:drawable/control_background_40pd_material
button: @android:drawable/btn_check_material_anim
但是派生的窗口小部件没有它们。
如何将它们应用于派生类?
更新
我尝试扩展MaterialCheckBox
,默认属性现在显示在面板中,但有例外)>
IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant)
我没有使用
Material
主题,那么如何使默认背景和按钮可绘制应用于自定义类?
我需要使用默认的材质样式创建自定义CheckBox。我的类像这样定义,所以类CustomCheckBox @JvmOverloads构造函数(context:Context,attrs:AttributeSet?= null,...
事实证明,@JvmOverloads
是问题的根源,如this post中所述