ViewModel的好搭档--livedata
class MyViewModel extends viewModel {
//传统定义方式,布局Ui无法感应变化
private String phoneInfo=""
LiveData方式,能被Ui感应
private MutableLiveData
①对外暴露 一个获取的方法
public MutableLiveData
而Ui的刷新,就是
LiveData +DataBinding,这一步,把上一章中,Activity中Ui的刷新的重任,给挑过来了。
注意:
数据变化---》Ui自动更新,
但是Ui变化 不等于 自动更新LiveData。
但是不少人误以为双向绑定。
因为DataBinding 支持一种 Two-way bingding的机制,@={userName}
但是userName必须是MutableLivaData等支持反向通知的类型。
MutableLivaData最终是通过setter和Listner的方式,实现了反向通知。
DataBinding 其实做的工作,就是把LiveData跟布局的Ui元素,一一映射起来。
它通过Layout标签,告诉Activity把布局完全交给我来管理,然后定义 data标签(viewModel类),
让布局跟liveData映射起来。
做完这一步之后,就把传统的findViewById,以及控件的setText的工作全部替换。
浙公网安备 33010602011771号