继承 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 AppCompatButtonAppCompatButton 没有 具有 4 个参数的构造函数,尽管 View 具有 4 个参数的构造函数 - 构造函数与方法的处理方式不同.