找不到值类型为 Boolean 的属性“app:vm”的 GETTER

2024-01-03

我正在尝试在我的自定义控件中使用本机 2 路 Android 数据绑定

所以我在 xml 中有类似的东西

<layout>
<data>
<variable name="item" type="Boolean"/>
</data>
...
<my.control app:vm="@={item}"/>
...
</layout>

请注意,这是关于@={}- 原生2路绑定。


以及代码中类似的东西:

class MyControl extends RelativeLayout{
...
@BindingAdapter("app:vm")
public static void setVm(View v, VM vm){...}
}

我的问题 - 我应该如何为我的 viewModel 定义 getter?我没有找到任何有关它的指导。我尝试了不同的方法 - 编写自定义吸气剂、静态吸气剂,但错误仍然相同。


取自here https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-android/,在“自己动手”下:

您将需要更多的额外代码才能使双向数据绑定与自定义类一起使用。最重要的是,您需要定义一个@InverseBindingMethod:

@InverseBindingMethods({
   @InverseBindingMethod(type = MyControl.class, attribute = "vm"),
})

在本例中,getter 的名称与“app:vm”的属性“getVm”的名称匹配。 (改成你的例子)

请访问链接的博客 - 它包含有关该主题的更多信息,包括属性更改事件侦听器的绑定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

找不到值类型为 Boolean 的属性“app:vm”的 GETTER 的相关文章

随机推荐