DataBinding @get:Bindable 不能生成字段

2019-01-14  本文已影响35人  pdog18
class User : BaseObservable() {

    @get:Bindable
    var firstName: String = ""
        set(value) {
            field = value
            notifyPropertyChanged(BR.firstName)
        }

    @get:Bindable
    var lastName: String = ""
        set(value) {
            field = value
            notifyPropertyChanged(BR.lastName)
        }
}

通常会遇到这种情况的原因是原先项目中没有用到kapt 也就是 apply plugin: 'kotlin-kapt' ,所以使用了apt生成代码。

其实不是 @get:Bindable 不能生成字段,而是 kotlin 代码中没有引用到。
查看下你的 build\generated\source\apt里有没有也生成了一个BR 类文件,如果有 IDE 可能就无法关联到 kapt 下生成的 BR 类文件。
所以你将build\generated\source\apt 文件删除一下,确保以后都使用kapt 来生成代码,这样就可以了

上一篇下一篇

猜你喜欢

热点阅读