要确保正确地更新绑定适配器,您需要在您的Binding Adapters中使用ObservableFields或LiveData进行绑定。
例如,假设您有一个TextView并将其文本设置为ViewModel的一个可观察字段:
//ViewModel中定义的可观察字段
public final ObservableField
//Binding Adapter用来在XML layout文件中设置TextView的文本属性 @BindingAdapter("app:text") public static void setText(TextView view, String text) { view.setText(text); }
在这种情况下,如果ViewModel的text字段更改,则TextView的文本将不会更新。要解决这个问题,我们需要使用ObservableField:
//ViewModel中定义的可观察字段
public final ObservableField
//Binding Adapter用来在XML layout文件中设置TextView的文本属性
@BindingAdapter("app:text")
public static void setText(TextView view, ObservableField
现在,当ViewModel的text字段更改时,TextView的文本将会更新。
同样的方法也适用于LiveData。您只需要更新您的Binding Adapters,使其接受LiveData对象而不是字符串:
//Binding Adapter用来在XML layout文件中设置TextView的文本属性
@BindingAdapter("app:text")
public static void setText(TextView view, LiveData
再次,当ViewModel的text字段更改时,TextView的文本将会更新。