ViewBinding的使用和databinding的比较
使用方法:
文章图片
image.png
在module的gradle文件下加入
android {
....
viewBinding {
enabled = true
}
}
【ViewBinding的使用和databinding的比较】加入之后ViewBinding后,创建的每一个xml布局都会生成一个对应的
xxxbinding
类比如一开始生成的
activity_main.xml
对应的文件就是 ActivityMainBinding
class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
}
文章图片
image.png
上面的三个属性是layout 布局文件的id。
另外还有个方法 就是getRoot 方法 返回对应跟布局view。
注 如果不想生成就在对layout 的根布局里面加上属性
tools:viewBindingIgnore="true"
总结:
相较于databinding的区别 viewbinding 的功能好像更少无法进行双向绑定。
但是它的优点也是明显的不需要对原有的xml 文件进行侵入。而databinding 首先是侵入式的。
且在xml 进行这种绑定也容易带来很多问题
说句实话,我不相信 DataBinding。对于它想解决的问题来说,这种方案在过于复杂。在使用 DataBinding 的时候,需要把代码逻辑放到 XML 布局中,这听起来很不错,但是经验丰富的开发人员都不会这么做,这个做法也是 Databinding 的另一个缺点思考
因此使用viewbinding 更好。
一个库功能是否复杂也许并不重要,而是适用于所对应的环境。并且对原有代码影响越少越好
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量