【问题标题】:Java Android Data Binding : what is the difference between @Bindable and @BindingAdapterJava Android数据绑定:@Bindable和@BindingAdapter有什么区别
【发布时间】:2020-09-29 10:17:36
【问题描述】:

我刚刚使用 [双向] 数据绑定了解 java android 中的 MVVM 模式,我对这两个注释的用法感到困惑。 在 1 篇文章中,示例是使用 @Bindable 和 notifyPropertyChanged 设置可观察数据,而在另一篇文章中,作者在他的示例中使用了 @BindingAdapter。 两者有什么区别?似乎两个注释都有相同的目的,我什么时候应该使用 @Bindable 而不是 @BindingAdapter ?

以下是一些代码参考: 对于可绑定(取自:https://androidwave.com/working-with-observable-data-object-using-data-binding/

@Bindable
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
    notifyPropertyChanged(BR.name);
}

对于 BindingAdapter(取自:https://androidwave.com/android-data-binding-recyclerview/

@BindingAdapter({ "avatar" })
public static void loadImage(ImageView imageView, String imageURL) {
  Glide.with(imageView.getContext())
      .setDefaultRequestOptions(new RequestOptions()
          .circleCrop())
      .load(imageURL)
      .placeholder(R.drawable.loading)
      .into(imageView);
}

感谢您的帮助。

【问题讨论】:

    标签: java android data-binding android-mvvm


    【解决方案1】:

    BindingAdapter 是在你要绑定的属性没有被android框架实现的情况下创建自定义绑定方法。另一方面,Bindable 用于将数据绑定到视图。为清楚起见,您可以将绑定适配器想象为自定义键,但可绑定为键的值。

    【讨论】:

      猜你喜欢
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 2010-12-10
      • 2012-12-02
      • 2017-05-22
      • 1970-01-01
      相关资源
      最近更新 更多