在Kotlin中使用辅助构造函数子类RelativeLayout

时间:2014-09-21 11:28:02

标签: android kotlin

我试着在Kotlin中继承RelativeLayout,但是我坚持使用这三个构造函数。

public RelativeLayout(Context context) {}
public RelativeLayout(Context context, AttributeSet attrs) {}
public RelativeLayout(Context context, AttributeSet attrs, int defStyle) {}

我已经尝试了http://devnet.jetbrains.com/message/5482057中描述的过程,但我不知道如何将这些与我的用例相匹配。

希望三个构造函数相互调用,我尝试使用默认值,但它在app启动时崩溃:

class SquareRelativeLayout(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0)
: RelativeLayout(context, attrs!!, defStyle) {}

任何关于惯用Kotlin方式的暗示吗?

[编辑]我正在使用Kotlin 0.8.11

1 个答案:

答案 0 :(得分:2)

更新:自M11(0.11。*)起,您可以使用secondary constructors来解决此问题。

Kotlin不支持多个构造函数(所以),所以你可以做的就是用Java编写这个特定的类(你可以在你的项目中自由地混合使用Java和Kotlin)