【发布时间】:2019-02-12 06:49:26
【问题描述】:
我无法使用数据绑定更新 ProgressBar 进度。
这就是我正在做的 -
- 我有一个模型用于保存 ProgressBar 当前进度。
ModelProgress.java
public class ModelProgress extends BaseObservable {
private int total;
private int current;
public void setCurrent(int current) {
this.current = current;
notifyPropertyChanged(BR.progress);
}
@Bindable
public int getProgress() {
return (current / total) * 100;
}
}
请注意我已创建 getProgress() @Bindable 并通知 BR.progress 更新值 current。因此,当变量 current 发生更改时,附加到 BR.progress 的 UI 会更新。
在 XML 中,我尝试使用变量 progress 附加 ProgressBar。
<ProgressBar
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:progress="@{model.progress}"
tools:progress="50" />
问题
一切都为我准备好了。现在当我调用 setCurrent() 方法时,它应该反映在 UI 上。喜欢binding.getModel().setCurrent(50);。但事实并非如此。
【问题讨论】:
-
使当前为
ObservableField也发布 ViewModel 类
标签: android data-binding android-databinding