可见性在数据绑定android中不起作用

可见性在数据绑定android中不起作用,android,android-layout,android-fragments,android-databinding,Android,Android Layout,Android Fragments,Android Databinding,我正在使用android studio 2.1使用android中最新的数据绑定。 使用下面代码中描述的可见性标记将错误获取为 java.lang.RuntimeException:发现数据绑定错误。 /数据绑定错误****消息:标识符必须具有XML文件中的用户定义类型。视图缺少它 文件:D:\HP\HealthPortal\u Android\Code\app\src\main\res\layout\cardview\u image\u twotextview.xml 地点:68:90-68:

我正在使用android studio 2.1使用android中最新的数据绑定。 使用下面代码中描述的可见性标记将错误获取为

java.lang.RuntimeException:发现数据绑定错误。 /数据绑定错误****消息:标识符必须具有XML文件中的用户定义类型。视图缺少它 文件:D:\HP\HealthPortal\u Android\Code\app\src\main\res\layout\cardview\u image\u twotextview.xml 地点:68:90-68:93 \数据绑定错误


做了一些谷歌没有阿贝尔找到的解决方案。@string/Empty_string在string.xml文件中定义为空字符串“”。我做错了什么


将此添加到您的
cardview\u image\u twotextview.xml

<data>
    <import type="android.view.View" />
    <!--your variables-->
</data>

数据元素内部可以使用零个或多个导入元素。 这些允许轻松引用布局文件中的类,只需 就像Java一样

您需要导入视图类才能使用其属性

<data>
    <import type="android.view.View"/>
</data>


您也可以参考官方。

要在字符串为空时隐藏视图,请在数据绑定中使用以下表达式

<data>
    <import type="android.view.View"/>
    <variable
        name="item"
        type="com.test.model.Item" />
</data>


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{item.title}"
    android:visibility='@{item.title.equals("") ? View.GONE : View.VISIBLE}'/>

注意:需要使用外部单引号字符串才能使用双引号 表示空字符串

如果要检查nullempty,请使用以下代码:

<data>
    <import type="android.view.View"/>
    <import type="android.text.TextUtils"/>
    <variable
        name="item"
        type="com.test.model.Item" />
</data>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{item.title}"
    android:visibility="@{TextUtils.isEmpty(item.title) ? View.GONE : View.VISIBLE}"/>

我刚刚创建了一个view类型的变量,不知道导入它很重要。谢谢你的解决方案。节省了我很多时间和糟糕的代码。
<data>
    <import type="android.view.View"/>
    <import type="android.text.TextUtils"/>
    <variable
        name="item"
        type="com.test.model.Item" />
</data>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{item.title}"
    android:visibility="@{TextUtils.isEmpty(item.title) ? View.GONE : View.VISIBLE}"/>