DataBinding xml中的写法大全

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataBinding xml中的写法大全相关的知识,希望对你有一定的参考价值。

参考技术A 因其不能直接引用 mipmap 里的图片,所以需要先导入一些包,通过以下方式引用:

也是需要导入一个 View 的包,才可以,如下写法:

一般都是需要导入 工具类的包,假如我工具类中写一个对后端返回的名字需要脱敏,就可以这么写:

例如我们在 string 文件中定义的:共 %s 个,占位符这种又该如何使用呢?

我们有很大一部分场景是动态设置按钮是否可点,一个属性 android:enabled 加一个变量就可以了,数据变量值的控制逻辑可以交给 ViewModel 去处理,或者拿到数据后做进一步封装处理,例如:

通常我们就是想给 ImageView 设置一个 url 就可以加载网络图片,那么我们可以直接在 xml 中定义相应的属性,放上我们的地址就可以了,于是我们的写法就变成了这样:

我们可以写一个扩展,写在项目中,任何 xml 中的 ImageView 都可以使用,如下:

这样就可以啦~

其实如果不想把 文字写在 string 里,想直接在 xml 中 对服务器返回的数据做一些拼接,可以这么写,例如我想给服务器返回的价格字段拼接上一个 ‘¥’ 符号,注意:这里只能拼接一些符号类,字母类的,如果是汉字会报错的:

汉字拼接:

😂 还是需要定义 string , 推荐 6 中的写法。

例如我们要给一个按钮设置点击事件,点击之后做一些业务逻辑处理:

然后我们就可以在 相应的 ViewModel 中,编写方法了,这里就是 HomeViewModel 中定义:

需要注意的是:必须要给一个默认值,因为一开始没值会报错

需要我们扩展一个方法:

持续更新,如果你发现更好的写法,可以在评论区分享出来~

布局和绑定表达式

databinding错误Error:(11) Error parsing XML: duplicate attribute

参考技术A 最近在使用databinding时,遇到一个问题 Error:(11) Error parsing XML: duplicate attribute

生成的debug布局文件

这是原布局文件

看到这个顿时一脸懵逼,为什么是这个错误呢?
主要问题是在编译过程中的布局文件报红的地方,报红的地方全是跟命名控件有关的,那问题应该是在布局文件中的命名空间吧.最后我把所有的命名控件全部移到layout标签里,点击运行,居然解决了.
原因是相同命名空间冲突的问题,android中所有命名空间必须在根布局标签里.
一个小问题,希望对你有帮助!

以上是关于DataBinding xml中的写法大全的主要内容,如果未能解决你的问题,请参考以下文章

jetpack之databinding

jetpack之databinding

jetpack之databinding

Android-DataBinding原理分析

databinding错误Error:(11) Error parsing XML: duplicate attribute

onClick 方法不是从带有 dataBinding 的 .xml 绑定表达式中调用的