通话要求 API 等级 21(当前最低等级为 19):android.view.View()

Call requires API level 21 (current min is 19): android.view.View()

所以我想创建一个使用自定义视图的库。我想继承Viewclass,但是报错,因为我的minsdk是19,我需要我的库支持sdk 19,请问有办法解决吗?

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)

这里有两件事:

  1. 使用带 3 个参数的视图构造函数。上下文、属性、defStyleAttr。
  2. 使用@JvmOverloads 注释和参数的默认值实际上支持一行中的 3 个构造函数。