调用需要API级别21当前最小值为19:android.view.View

问题描述

所以我想创建一个使用自定义视图的库。我想继承View类,但这是错误的,因为我的minsdk是19。我需要我的库来支持sdk19。有没有办法解决这个问题?

class Dummy() :  View(context,attrs,defStyleAttr,defStyleRes) {

解决方法

您应该为此使用另一个构造函数。您使用的一个仅可通过API 21获得。

对于自定义视图,我这样使用它:

class Dummy @JvmOverloads constructor(context: Context,attrs: AttributeSet? = null,defStyleAttr: Int = 0)
: View(context,attrs,defStyleAttr)

这里有2件事:

  1. 使用具有3个参数的View构造函数。上下文,属性,defStyleAttr。
  2. 使用@JvmOverloads注释和默认值作为参数,以实际上支持一行中的3个构造函数。