我按照 Android 开发者官方网站上的 自定义绑定(bind)适配器 图像加载 的数据绑定(bind)文档: http://developer.android.com/tools/data-binding/guide.html
成功编译代码后,我收到一条警告:
Warning:Application namespace for attribute bind:imageUrl will be ignored.
我的代码如下:
@BindingAdapter({"bind:imageUrl"})
public static void loadImage(final ImageView imageView, String url) {
imageView.setImageResource(R.drawable.ic_launcher);
AppController.getUniversalImageLoaderInstance().displayImage(url, imageView);
}
为什么会生成此警告?
最佳答案
我相信在 BindingAdapter
注释中真正忽略了命名空间。如果您使用任何命名空间前缀,无论它是否与您的布局中使用的前缀匹配,都会出现警告。如果省略命名空间,如下所示:
@BindingAdapter({"imageUrl"})
...警告没有发生。
我怀疑存在警告,以提醒我们在字符串用作注释实现中的键之前, namespace 已被剥离。当您考虑布局可以自由声明他们想要的任何命名空间时,这是有道理的,例如app:
或 bind:
或 foo:
,并且注解需要适用于所有这些情况。
关于Android DataBinding 自定义绑定(bind)适配器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313466/