在 Kotlin 的自定义视图中访问属性

Accessing attrs in custom view in Kotlin

我正在使用 Kotlin 创建自定义视图。

对于构造函数,我遵循了此处列出的建议:https://blog.q42.nl/the-danger-of-assumptions-kotlin-with-android-custom-views-adb79bf2da45

我的问题是现在 init 块无法识别 attrs 参数,因为它们不在主构造函数中。

我是不是漏掉了什么?

只需创建带有主体的构造函数,并从内部调用一个初始化属性的函数。

例如:

constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
    attrs?.let { initAttrs(it) }
}

private fun initAttrs(attrs: AttributeSet) {
    ...
}