DataBinding部分点

207 阅读1分钟

1. 报错

1. Failed resolution of: Landroidx/databinding/DataBinderMapperImpl

解决:使用到databinding的子模块,及app模块,都要加上

android {
    //20210906 启用dataBinding
    buildFeatures {
        dataBinding = true
        viewBinding = true
    }
}

2. unrecognized Attribute name MODULE

gradle里面compileSdkVersion和buildToolsVersion版本过高,超过Android Studio支持范围

2. 知识点

1. 使用ViewModel控制View的可见性

val index: MutableLiveData<Int> = MutableLiveData<Int>(0)

android:visibility="@{vm.index==0?View.VISIBLE:View.INVISIBLE}"

2. 在xml中调用ViewModel中指定方法

  • 注意:调用方法要加上括号,否则会被编译器当做访问ViewModel实例中的一个变量
android:onClick="@{()->vm.showUI1()}"