如果定义为继承视图 @BindingAdapter 解析为哪一个?

If defined for inheriting views @BindingAdapter resolves to which one?

假设为 ImageView 定义了 @BindingAdapter("imageUrl"),而 MyImageView 继承自 ImageView。如果在 MyImageView 中使用,用 @BindingAdapter 注释的方法将 app:imageUrl 解析为?

我的理解是,由于继承关系,这应该是有歧义的。

如果您在 layout.xml 中使用 MyImageView,调用的方法将是 MyImageView class 中声明的方法。 如果这个class内部不存在这个方法,由于继承,它会调用继承它的superclass(ImageView)的方法。在这种情况下,method overload 发生了。

如果您在 layout.xml 中仅使用 ImageView,被调用的方法将在 ImageView class 中声明。