MVVM模式将应用程序划分为三层:它主要负责提供数据。模型层提供业务逻辑数据结构(例如物理类),提供数据采集(例如,从本地数据库或远程获取数据网络),提供数据存储。
它主要负责显示接口。视图层不涉及任何业务逻辑处理。它具有对ViewModel层的引用。当需要业务逻辑时,将通知ViewModel层。
它主要负责业务逻辑的处理。视图模型层不涉及任何视图操作。通过官方数据绑定库,视图层中的数据和ViewModel层中的数据可以绑定。ViewModel层中数据的更改可以自动通知要更新的视图层,因此ViewModel层不需要对视图层的引用。视图模型层可以被视为视图层的数据模型的组合和主持人层。
MVVM模式的最大优点是,ViewModel层没有对视图层的引用。这进一步降低了耦合,并且视图层代码的更改不会影响ViewModeL层。当视图层变化时,如图所示。只要绑定到视图层的数据保持不变,就无需更改视图模型层。无需编写大量模型代码。通过官方数据绑定库,可以在UI和数据之间实现绑定。无需编写大量的FindViewById()和操作视图的代码。它在开发过程中大大提高了UI接口数据绑定的开发效率!
首先,我们从最基本的MVVM架构开始。目前,MVVM条目 - 级版本主要是围绕数据指标和ViewMode封装的,放弃了烦人的FindViewById和通过ButterKnife方法获得视图操作的方法。
第一步是创建一个空白项目。条目 - 级别将首先划分-Project软件包结构:
不要忘记打开数据指标函数,以便在项目模块的Gradle文件下,我们可以使用较少数据框的大型视图代码:App:app:
打开数据指标函数后,返回到我们创建的布局文件。默认值为:
直接选择根目录,单击+Emter或鼠标单击以提示灯泡,然后选择第一个转换为数据绑定布局。正如我们将自动将布局文件转换为我们需要的数据指标结构:
附加我们的主要VM文件,这是一个普通的Java类,它提供了一个Getter方法。默认情况下,数据指标可以直接在VM文件中获得Getter和公共属性值:
为了将VM和布局文件关联,我们需要在MainActivity中调用databindingutil.setContentView()方法,并将mainvm绑定到布局文件。
运行应用程序项目,我们可以根据最初完成的数据来查看MVVM项目的结果:
单击按钮以查看后台的日志:com.jf.mvvm d/mvvm:在线!
让我们更新代码,并在VM中链接单击操作和数据:
单击后,页面上什么也没有发生,但是我们日志中记录的值已成功更新:
在了解数据框的使用后,我们知道,如果要更新并同步到UI中,我们需要执行此操作,继承Androidx.databinding.baseobservable.baseobservable的VM文件,并将@bindable添加到需要的绑定数据中,需要要通知,以便我们可以通过调用notifypropertychanged(br.title)来调用notifypropertychaanged(br.title);
完成上述改进后,我们再次运行应用程序并单击测试按钮,您会发现页面显示的值已根据我们预期的值成功更改!
到目前为止,我们第一级中最简单的MVVM模型已经完成!
连续更新,公共帐户:程序员Meow Master
