【Jetpack-三】DataBinding类前后端分离学习笔记(Kotlin)

学习视频来源:

  1. https://www.bilibili.com/video/BV1sJ41127EMlongway777
  2. 模型图来源也全截取来自该Up的视频

目的

  1. 直接目的
    > 这里是引用
  2. 结构上Controller与View更加独立
    在这里插入图片描述

一.基础步骤

  1. 建立和之前一样的mod
  2. 修改项目内gradle文件,启用databinding
  3. java还有个viewbinding,不过用kotlin就不太需要。
    在这里插入图片描述
    在这里插入图片描述
   dataBinding {
    
    
            enabled true
        }
  1. 将对应layout文件点击小灯泡转换为databinding layout
    在这里插入图片描述
    转换DataBinding后多了两个标签
    在这里插入图片描述
  2. 来到主界面发现多了一个类型ActivityMainBinding就是我们转换的layout相关类型,并以这种方式取代指定layout
  3. 通过新的方式指定layout和调用上面控件,不用findbyid,kotlin本身就可以不用指定所以调用可以不用binding.button,直接用控件名即可
    在这里插入图片描述

前后端分离,将数据回绑到xml

1.配置XMl标签

  1. 使用variable,利用名称与变量类型,创建键值对类型指代后端界面的ViewModel
    <data>
        <variable
            name="data"
            type="com.ywjh.databinding.ViewModelDataBinding"/>

    </data>

在这里插入图片描述

二. 修改前端内容

  1. 将原text内容,通过data取出number再设置使用,data是从刚刚绑定viewmodel中取出的东西,String.valueOf(data.number)也可以。数据回绑
    在这里插入图片描述
  2. 修改button,直接设置点击指定方法,就不用在界面上调用了,牛逼
    在这里插入图片描述
  3. 修改主界面源代码
    1)监听可以去掉,用binding取代我们的观察者监听,反绑的好处。
    2)用binding.setLifecycleOwner即可发挥livedata的作用
    在这里插入图片描述

补充

如果想重置,写个方法全置0 ,想撤销就每次更改时记录更改前的值,若是想设计横向页面,选择Create Landscope Variation即可
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38304672/article/details/106676842
今日推荐