跳转至

ViewBinding

如果已经使用DataBinding那么本章不用了解

功能 ViewBinding DataBinding
取代findViewById()
双向数据绑定 MVVM最优方案
复用xml属性 减少代码量
防止View空指针 代码更健壮
编译期生成代码 所有布局全部生成 仅生成包含<layout>生成
封装实现 反射+泛型 使用Api创建
替换原有xml属性 优先自定义属性

使用

使用getBinding()获取ViewBinding对象

rv.linear().setup {
    addType<SimpleModel>(R.layout.item_simple)
    onBind {
        val binding = getBinding<ItemSimpleBinding>()
    }
}.models = getData()

多类型需要判断类型

如果是多类型请先判断类型再getBinding(), 避免获取到错的ViewBinding导致崩溃, 请阅读区分类型