先说结论
ObservableField 一般用于 dataBinding 交互式绑定。
ObservableField.set() 从时效性来说并不等同于 TextView.setText()。
解决办法,如果需要实时处理观察结果 ,通过
Choreographer.getInstance().postFrameCallback() 处理。
举个简单例子
public class TestViewModel extends ViewModel {
public ObservableField<String> text = new ObservableField<>();
public void setText(String s) {
text.set(s);
}
}
public class TestActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View view = getLayoutInflater().inflate(R.layout.activity_test, null); setContentView(view); DataBindingUtil.bind(view); ActivityTestBinding binding = DataBindingUtil.getBinding(view); TestViewModel viewModel = new ViewModelProvider(t