无法在 Android 数据绑定中引用其他 View ID [英] Cannot refer to other View ID in Android data binding

查看:26
本文介绍了无法在 Android 数据绑定中引用其他 View ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚看完

但我不能让它在我的情况下工作:

我得到了

<块引用>

错误:(426, 39) 标识符必须具有来自 XML 的用户定义类型文件.btn_list 不见了

我在同一次演讲中错过了一个重要的观点......视图 ID 是驼峰式的.

解决方案

绑定过程将您的 ID 转换为绑定类中的属性,并且生成的名称是驼峰式的.

您可能需要更改以下行:

android:visibility="@{btn_list.visibility}"/>

为此:

android:visibility="@{btnList.visibility}"/>

I just finished watching Advanced Data Binding - Google I/O 2016 and would like to apply the following to reduce repetition of my expression used in different views.

But I cannot make it work in my case:

<ImageButton
                android:id="@+id/btn_list"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_gravity="start"
                android:background="@drawable/btn_s01_list"
                android:visibility="@{bean.shouldHideControls? View.GONE: View.VISIBLE}"/>

            <ToggleButton
                android:id="@+id/btn_radar"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:background="@drawable/btn_radar_selector"
                android:checked="false"
                android:gravity="end"
                android:text=""
                android:textOff=""
                android:textOn=""
                android:visibility="@{btn_list.visibility}"/>

and I got

Error:(426, 39) Identifiers must have user defined types from the XML file. btn_list is missing it

Edit:

I missed an important point in the same talk... The View IDs are camel-casified.

解决方案

The binding process converts your IDs to properties in the binding class, and the generated names are camel-casified.

You may need to change the following line:

android:visibility="@{btn_list.visibility}"/>

To this:

android:visibility="@{btnList.visibility}"/>

这篇关于无法在 Android 数据绑定中引用其他 View ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆