Android文档说,视图绑定是一个特性,而数据绑定是一个库。那是什么意思?从视图绑定生成的绑定类和数据绑定之间有什么关系吗?它们是生成单个绑定类还是生成单独的绑定类?
{
viewBinding = true
dataBinding = true
}发布于 2021-08-26 12:14:55
经过一些研究,我了解到视图绑定和数据绑定都会生成单个绑定类。
示例:假设我们有一个布局文件activity_main.xml,如果您在模块级build.gradle文件中启用视图绑定,将在build > generated folders层次结构中生成一个ActivityMainBinding.java文件。现在,如果我们还启用了数据绑定并在XML布局文件中进行了更改(添加了布局标记并包含了我们的视图模型),则同一文件ActivityMainBinding.java会自动在其内部进行一些更改,并同时用于视图绑定和数据绑定。
发布于 2021-08-17 14:18:25
它们生成不同的类,因为它们做完全不同的事情。
视图绑定生成要在代码中使用的绑定类。您可以在膨胀视图时使用它,它会遍历膨胀的视图,并用id填充每个视图的字段,该id以id的名称命名。它允许你不用做所有的View x = findViewById(R.id.y)工作,而是用一个单一的绑定来代替所有的东西。
数据绑定创建的类可以在布局xml中引用,并用于自动将数据从该绑定类移动到视图中。例如,您可以假设TextView的文本是{user.name},当您更新该布局的模型时,它将自动使用新值填充视图。
数据绑定有点争议--有些人喜欢它,有些人讨厌它。这是你做事方式的一个重大变化。视图绑定基本上是ButterKnife的替代品,对开发人员的生活质量也有很小的改善。
https://stackoverflow.com/questions/68818656
复制相似问题