Android Kotlin - Как расширить ConstraintLayout? - PullRequest
0 голосов
/ 31 мая 2018

Я бы хотел, чтобы мой ConstaintLayout содержал дополнительные дополнительные свойства, но у меня проблемы с его расширением.Точнее у меня проблемы с помещением правильного конструктора в

class myCL(): ConstraintLayout(???) {
}

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Конструктор, который вам действительно нужен, это тот, у которого есть все аргументы:

class myCL(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) :
    ConstraintLayout(context, attrs, defStyleAttr) {
}

Если вы хотите реализовать все три конструктора без особых хлопот, вы можете использовать @JvmOverloads и использовать разумные значения по умолчанию.

class myCL @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : ConstraintLayout(context, attrs, defStyleAttr) {
}

см. https://developer.android.com/reference/android/support/constraint/ConstraintLayout

0 голосов
/ 31 мая 2018

Чтобы убедиться, что вы не получаете никаких причуд в поведении, вы должны реализовать это следующим образом.

class myCL: ConstraintLayout {
    constructor(context: Context) : super(context)
    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
    constructor(context: Context, attrs: AttributeSet?,
                @AttrRes defStyleAttr: Int) : super(context, attrs, defStyleAttr)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...