在Kotlin中有一种方法可以隐藏(放置在其他地方)视图的默认构造函数吗?也许创建一个子视图或扩展或类似的东西.
目前我的所有观点都是这样的,这有点冗长:
class MyView(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int): View(context, attrs, defStyleAttr, defStyleRes) {
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int): this(context, attrs, defStyleAttr, 0)
constructor(context: Context, attrs: AttributeSet?): this(context, attrs, 0, 0)
constructor(context: Context): this(context, null, 0)
}
Run Code Online (Sandbox Code Playgroud)
您可以使用默认参数:
class MyView(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0): View(context, attrs, defStyleAttr, defStyleRes)
Run Code Online (Sandbox Code Playgroud)
如果你需要调用从Java这些构造,可以考虑申请该@JvmOverloads注释的构造器:
class MyView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0): View(context, attrs, defStyleAttr, defStyleRes)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |