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中的写法大全的主要内容,如果未能解决你的问题,请参考以下文章
databinding错误Error:(11) Error parsing XML: duplicate attribute