标识符必须具有XML文件中的用户定义类型,并带有observablefield的数据绑定

时间:2019-04-03 08:58:12

标签: android android-databinding

我希望视图的可见性取决于条件行为,因此我正在使用ObservableField并通过数据绑定尝试更改视图的可见性,但遇到诸如“标识符必须具有XML文件中用户定义的类型。InputType缺少它的问题”之类的问题 >

代码:

Kotlin File

var showView: ObservableField<Boolean>? = ObservableField(false)

//API call response
showView.set(true)


Layout File:

<TextView
 android:id="@+id/textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="@{viewModel.showView ? View.VISIBLE : View.GONE}"/>

如何将数据绑定与boolean类型的Observablefield配合使用?我也将它用于字符串文本,它可以工作,但不能与布尔条件语句一起工作。

1 个答案:

答案 0 :(得分:3)

我不确定是否是这种情况,但是当您在布局的<data>部分中未声明的绑定表达式中引用一个类型时,通常会显示此错误消息。与将View类型声明为导入一样,应该声明InputType类型。

<data>
    <!-- Maybe an import for InputType is missing here? -->
    <import type="android.view.View" />
    <variable
        name="viewModel"
        type="com.yourpackage.YourViewModel"/>
</data>