1
我们假设有@BindingAdapter("imageUrl")
为ImageView
和MyImageView
定义,它继承自ImageView
。如果在MyImageView
中使用了@BindingAdapter
,将使用app:imageUrl
解析为哪种方法?如果为继承视图定义@BindingAdapter解析为哪一个?
我的理解是,由于继承关系,这应该是不明确的。
我们假设有@BindingAdapter("imageUrl")
为ImageView
和MyImageView
定义,它继承自ImageView
。如果在MyImageView
中使用了@BindingAdapter
,将使用app:imageUrl
解析为哪种方法?如果为继承视图定义@BindingAdapter解析为哪一个?
我的理解是,由于继承关系,这应该是不明确的。
如果在layout.xml
中使用MyImageView
,则调用的方法将是在MyImageView
类中声明的方法。 如果此方法不存在于此类中,它将调用其继承的超类(ImageView
)的方法。在这种情况下,发生method overload
。
如果你只用你的ImageView
类中声明ImageView
在layout.xml
,被调用的方法将是法。
这是正确的。在这种情况下,数据绑定可以实现你想要的 - 它选择它能找到的最具体的实现。我没有检查多属性绑定适配器的优先级,因此您应该确认在发生冲突时选择哪个适配器。如果我不得不猜测,多属性绑定适配器优先于更具体的单个属性BindingAdapter。但先尝试一下。 –