簡體   English   中英

Java Android 數據綁定:@Bindable 和@BindingAdapter 有什么區別

[英]Java Android Data Binding : what is the difference between @Bindable and @BindingAdapter

我剛剛在 java android 中使用 [雙向] 數據綁定了解了 MVVM 模式,我對這兩個注釋的用法感到困惑。 在一篇文章中,示例是使用@Bindable 和 notifyPropertyChanged 設置可觀察數據,而在另一篇文章中,作者在他的示例中使用了@BindingAdapter。 兩者有什么區別? 似乎兩個注解都有相同的目的,我什么時候應該使用@Bindable 而不是@BindingAdapter?

以下是一些代碼參考:對於 Bindable(取自: 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);
}

謝謝您的幫助。

BindingAdapter 是在android 框架沒有實現你要綁定的屬性時創建自定義綁定方法。 另一方面,Bindable 用於將數據綁定到視圖。 為清楚起見,您可以將綁定適配器想象成自定義鍵,但可綁定為鍵的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM