当前位置: 首页 > 知识库问答 >
问题:

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

欧阳元魁
2023-03-14

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

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

   <TextView
                        android:id="@+id/card_sub_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/card_title"
                        android:layout_marginLeft="@dimen/carview_margin"
                        android:layout_toRightOf="@+id/card_image"
                        android:text="@{toolsAndTrackersCards.subtitle}"
                        android:textColor="@color/black"
                        android:textSize="20sp"
                        android:visibility="@{toolsAndTrackersCards.subtitle.equals(@string/Empty_String) ?  View.VISIBLE : View.GONE}"
                        />

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

Android数据绑定,单选按钮不更新

共有3个答案

柯奕
2023-03-14

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

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

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

您还可以参考官方的数据绑定指南。

周和歌
2023-03-14

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

<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}'/>

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

如果要检查null和empty,请使用以下代码:

<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}"/>
司徒啸
2023-03-14

将此添加到您的cardview_image_twotextview.xml

<data>
    <import type="android.view.View" />
    <!--your variables-->
</data>
 类似资料:
  • 我试图通过数据绑定来设置布局可见性。从数据库加载数据时,我在XML中设置的默认可见性不起作用。这是布局文件 视图模型是这样的 我有什么遗漏吗?默认情况下,我希望将错误布局的可见性设置为不可见。但默认情况下会显示它。

  • 尝试使用自定义变量设置的可见性,但发生错误:。是否可以使用数据绑定设置视图可见性?多谢了。

  • 问题内容: 我正在构建一个简单的示例,使用该属性翻转卡片。 几天前它运行良好,但突然间它停止工作。效果仍然有效,但是当我将鼠标悬停在卡片上时,正面应该消失以使背面可见。为此,我正在使用该属性。但是似乎无法在chrome中正常工作(无论是稳定版还是每晚构建版) 如果我在做一些糟糕的事情,这里是代码 之所以得出这个结论,是因为我做了几个简单的示例,只使用了一个旋转的div,上面有一个简单的文本,背面隐

  • 我试图使用数据绑定实现一个简单的视图隐藏/显示。我有一个api调用,我必须在api调用进行时显示一个progressbar。一旦我得到响应,就必须放弃这个进度并显示数据。我尝试使用数据绑定动态地更改progressbar的可见性。但什么也没发生。只是第一次根据绑定变量设置progresbar可见性。它不是在更新绑定变量时动态更新的。 这里少了什么?为什么不管用?提前感谢…

  • 问题内容: 我在CSS中添加了一个“扰流器”类,用于扰流器。文本通常是不可见的,但是当鼠标悬停在其上方以向想要阅读该文本的任何人显示扰流板时,该文本就会出现。 应该很简单,但是由于某种原因这是行不通的。即使我将鼠标指向文字,文字仍然不可见。知道是什么原因造成的吗? 问题答案: 您不能将鼠标悬停在隐藏的元素上。一种解决方案是将元素嵌套在另一个容器中: CSS: HTML: 更新资料 在Chrome上