继承 AppCompatButton 的正确方法是什么?
What's the correct way to subclass AppCompatButton?
// FooButton.kt
class FooButton : AppCompatButton {
@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0)
: super(context, attrs, defStyleAttr)
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int)
: super(context, attrs, defStyleAttr, defStyleRes) // Nope
}
子类化 AppCompatTextView 但不是 AppCompatButton 时一切正常,即使
两者都继承 View
's signature 因此子类可以有自己的基本样式。这正是我想要做的。
我在 Lollipop 构造函数的 super
调用中遇到错误,无法使用提供的参数调用任何函数。 AppCompatButton
!是什么让你如此特别?!
根据 the documentation for AppCompatButton,AppCompatButton
没有 具有 4 个参数的构造函数,尽管 View 具有 4 个参数的构造函数 - 构造函数与方法的处理方式不同.
// FooButton.kt
class FooButton : AppCompatButton {
@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0)
: super(context, attrs, defStyleAttr)
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int)
: super(context, attrs, defStyleAttr, defStyleRes) // Nope
}
子类化 AppCompatTextView 但不是 AppCompatButton 时一切正常,即使
两者都继承 View
's signature 因此子类可以有自己的基本样式。这正是我想要做的。
我在 Lollipop 构造函数的 super
调用中遇到错误,无法使用提供的参数调用任何函数。 AppCompatButton
!是什么让你如此特别?!
根据 the documentation for AppCompatButton,AppCompatButton
没有 具有 4 个参数的构造函数,尽管 View 具有 4 个参数的构造函数 - 构造函数与方法的处理方式不同.