Visibility not working in data binding android
我正在使用 android studio 2.1 在 android 中使用最新的数据绑定。
使用下面代码中描述的可见性标记,得到错误为
java.lang.RuntimeException: Found data binding errors.
/ data binding error ****msg:Identifiers must have user defined types from the XML file. View is missing it
file:D:\\HP\\HealthPortal_Android\\Code\\app\\src\\main\
es\\layout\\cardview_image_twotextview.xml
loc:68:90 - 68:93
\\ data binding error
1 2 3 4 5 6 7 8 9 10 11 12 | <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 数据绑定,单选按钮未更新
将此添加到您的
1 2 3 4 | <data> <import type="android.view.View" /> <!--your variables--> </data> |
要在字符串为空时隐藏视图,请在数据绑定中使用以下表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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 和空,请使用以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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}"/> |
Zero or more import elements may be used inside the data element.
These allow easy reference to classes inside your layout file, just
like in Java.
您需要导入 View 类才能使用它的属性。
1 2 3 | <data> <import type="android.view.View"/> </data> |
你也可以参考官方的DataBinding指南。