我刚看完Advanced Data Binding - Google I/O 2016并希望应用以下内容来减少在不同视图中使用的表达式的重复。
但我无法在我的案例中发挥作用:
<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}"/>
我得到了
错误:(426,39)标识符必须具有XML中的用户定义类型 文件。 btn_list缺少它
修改
我在同一次谈话中错过了一个重要的观点...视图ID是骆驼化的。
答案 0 :(得分:30)
绑定过程将您的ID转换为绑定类中的属性,并且生成的名称是camel-casified。
您可能需要更改以下行:
android:visibility="@{btn_list.visibility}"/>
对此:
android:visibility="@{btnList.visibility}"/>