I have a custom view written in Kotlin using JvmOverloads that I could have default value.
class MyView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyle: Int = 0,
defStyleRes: Int = 0
) : LinearLayout(context, attrs, defStyle, defStyleRes)
All works fine in Android 5.1 and above.
However it crashes in 4.4, since the constructor in 4.4 doesn't have defStyleRes
. How could I have that supported that in 5.1 and above I could have defStyleRes
but not in 4.4, without need to explicitly having 4 constructors defined like we did in Java?
Note: The below would works fine in 4.4, but then we loose the defStyleRes
.
class MyView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyle: Int = 0
) : LinearLayout(context, attrs, defStyle)