4

我最近创建了一个库,并在其中创建了一个类似于下面的 BindingAdapter(只是在 TextView 上装饰文本)。

@BindingAdapter({"decorateText"})
public static void decorateText(final View view, String text) {
    ((TextView)view).setText("<<<" + text + ">>>");
}

可以从同一个 Android Studio 项目中的应用模块访问此 BindingAdapter,如下所示

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:decorateText="@{`Buy Now`}"/>

但是在我通过 jcenter 分发库,并通过 gradle 从不同的应用程序项目中导入库后,我无法使用"app:decorateText"标签。

我得到了以下错误。

No resource identifier found for attribute ‘decorateText' in package 'com.goldrushcomputing.myapplication'

我可以从应用程序中调用该库的公共方法,因此该库看起来已正确导入到项目中。

是否有任何技巧可以使库中的 BindingAdapter 可从应用程序模块访问,还是不可能?

4

1 回答 1

1

确保您添加了

dataBinding {
    enabled = true
}

到您的库模块的.gradle文件。

于 2019-04-05T20:10:32.287 回答