android - 在 Kotlin 的自定义 View 中访问属性

标签 android kotlin android-custom-view android-attributes

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

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

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

我错过了什么吗?

最佳答案

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

例如:

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

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

关于android - 在 Kotlin 的自定义 View 中访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57244720/

相关文章:

java - 如何使用 LiveData 实现 zip 功能

firebase - Firestore 的 `documentSnapshot.toObject(className::class.java)` 如何重新分配在主构造函数中设置的 `val` 值?

kotlin - 在 Kotlin 中无需公开具体类型的通用生产者和消费者

java - Topmost View 吞下触摸事件,因为重叠

android - 机器人 : How to reorder a linearlayouts contents programmatically?

android - IntentService <-> Activity 通信

java - 整数 null 以检查数据库

kotlin - 即使可以进行空检查,可空和不可空浮点错误之间的Kotlin乘法

java - 如何创建可以动态接受角半径和颜色并相应更改的自定义按钮 View

android - android中如果Viewgroups的dispatchDraw方法被覆盖,ImageViews是不可见的