簡體   English   中英

可見性不適用於數據綁定android

[英]Visibility not working in data binding android

我使用android studio 2.1在android中使用最新的數據綁定。 使用可見性標記,如下面的代碼所述,獲取錯誤

java.lang.RuntimeException:發現數據綁定錯誤。 / data binding error **** msg:標識符必須具有XML文件中的用戶定義類型。 視圖缺少文件:D:\\ HP \\ HealthPortal_Android \\ Code \\ app \\ src \\ main \\ res \\ layout \\ cardview_image_twotextview.xml loc:68:90 - 68:93 \\ data binding error

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

做了一些谷歌沒有abel找到解決方案。 @ string / Empty_String在string.xml文件中定義為空字符串“”。 我做錯了。

Android數據綁定,單選按鈕不更新

將其添加到cardview_image_twotextview.xml

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

可以在數據元素內使用零個或多個導入元素。 這些允許輕松引用布局文件中的類,就像在Java中一樣。

您需要導入View類才能使用其屬性。

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

您也可以參考官方DataBinding指南

要在字符串為空時隱藏視圖,請在數據綁定中使用以下表達式

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM