如何解决使用包含标签的 Android 数据绑定
问题是包含的布局没有被认为是数据绑定布局。要使其充当一个,您需要传递一个变量:
<layout xmlns:andr...>
<data>
<variable name="foo" type="int"/>
</data>
<Button
android:id="@+id/button"
...." />
<layout xmlns:andr...
...
<include layout="@layout/buttons"
android:id="@+id/buttons"
app:foo="@{1}"/>
....
然后您可以通过按钮字段间接访问按钮:
MainBinding binding = MainBinding.inflate(getLayoutInflater());
binding.buttons.button
从 1.0-rc4(刚刚发布)开始,您不再需要该变量。您可以将其简化为:
<layout xmlns:andr...>
<Button
android:id="@+id/button"
...." />
<layout xmlns:andr...
...
<include layout="@layout/buttons"
android:id="@+id/buttons"/>
....
解决方法
更新说明:
上面的例子 可以正常工作 ,因为 1.0-rc4 版本 修复 了需要不必要变量的问题。
原始问题:
我完全按照文档中的描述进行操作,但它不起作用:
主.xml:
<layout xmlns:andr...
<data>
</data>
<include layout="@layout/buttons"></include>
....
按钮.xml:
<layout xmlns:andr...>
<data>
</data>
<Button
android:id="@+id/button"
...." />
我的活动.java:
... binding = DataBindingUtil.inflate...
binding.button; ->cannot resolve symbol 'button'
如何获得按钮?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。