Android databinding error: cannot find symbol of my custom @BindingAdapter

Android databinding error: cannot find symbol of my custom @BindingAdapter

我正在尝试添加应用程序全局自定义 @BindingAdapter。我创建了 TextViewBinding.kt 文件,并将其放入单独的包 com.my.app.binding.TextViewBinding。当我编译应用程序时,出现错误

error: cannot find symbol TextViewAdapterKt.setTypeface(this.titleTextView, viewedJavaLangStringNormalJavaLangStringBold);

如果我将适配器函数放入Activity,则没有错误。但是,因为它是应用程序全局适配器,所以我不希望它属于任何特定视图。那么,我应该将适配器函数放在哪里以消除错误?

TextViewAdapter.kt

@BindingAdapter("typeface")
fun TextView.setTypeface(style: String) {
    when (style) {
        "bold" -> setTypeface(null, Typeface.BOLD)
        else -> setTypeface(null, Typeface.NORMAL)
    }
}

my_list_item.xml

...
    <TextView app:typeface='@{viewed ? "normal" : bold"}' ... />
...

终于找到错误原因了。我只是忘了将包声明添加到 TextViewAdapter.kt 文件的顶部。