美文网首页Android 知识
ViewBinding的使用和databinding的比较

ViewBinding的使用和databinding的比较

作者: 陈沉成染 | 来源:发表于2020-05-10 13:12 被阅读0次

    使用方法:

    image.png

    在module的gradle文件下加入

    android {
       ....
        viewBinding {
            enabled = true
        }
    }
    

    加入之后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 更好。

    思考
    一个库功能是否复杂也许并不重要,而是适用于所对应的环境。并且对原有代码影响越少越好

    相关文章

      网友评论

        本文标题:ViewBinding的使用和databinding的比较

        本文链接:https://www.haomeiwen.com/subject/cvfjnhtx.html