无法在Android数据绑定中解析BR

时间:2019-07-10 17:53:31

标签: android data-binding

我正在使用Android数据绑定,但是BR无法解析 这是我的虚拟视图模型

我已在我的应用程序gradle中启用了数据绑定

dataBinding {
        enabled = true
    }

gradle-wrapper.properties具有数据:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

这是我的视图模型

public class DummyViewModel extends BaseObservable {

    private int mSomeValue = 0;
    public void setValue(int value) {
        mSomeValue = value;
        //Here BR can not be resolved
        notifyPropertyChanged(com.something.myapplication.BR.positive);
    }

    @Bindable
    public boolean isPositive() {

        return mSomeValue > 0;
    }
}

这是Project gradle的classPath

dependencies {

    classpath 'com.android.tools.build:gradle:3.4.2'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Android Studio version: 3.4

2 个答案:

答案 0 :(得分:1)

如果您的XML有效,请尝试清理和重建。 AS有时可能需要一段时间才能协调数据绑定。如果仍然无法运行,则可能是其他地方的代码有错误。

XML应该看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>
        <variable
            name="viewModel"
            type="com.something.myapplication.DummyViewModel"/>
    </data>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="@{viewModel.positive ? View.VISIBLE : View.GONE}"
            android:src="@drawable/something"/>
   </RelativeLayout>
</layout>

答案 1 :(得分:0)

将您的项目转换为android x,然后删除旧的BR类并从下面的包中添加BR类 导入androidx.databinding.library.baseAdapters.BR