Android Databinding

之前说每周至少一篇博客的这篇一下间隔了两个星期(--)这两个星期加班加的也是吐血啊。要说硬抽时间写个东西也是能行。但没什么特别有用的感觉还不如不写(现在写博客为粉丝功利的人太多...)

回归正题,前两天google的android studio2.0终于出稳定版了,因为用自己的电脑办公所以一直没有用过。出了稳定版迫不及待的升了起来。之前一直火热的MVVM databinding可以爽爽的码起来了。先弄个截图毕竟这是“潜规则”没图谁知道干嘛的哈哈

Screenshot_20160412-165135.png

ok. Just do it.

首先需要在build.gradle允许使用databinding(如图)


Android Databinding_第1张图片
Paste_Image.png

数据绑定


在xml布局文件中将需要和view绑定的model引入 其中user为变量名 type为路径(第一个红框)。然后在需要更新的地方进行调用(第二个红框)。这样在xml中的绑定就完成了。



而且是可以写常用的表达式的比如

Android Databinding_第2张图片
Paste_Image.png

Android Databinding_第3张图片
Paste_Image.png

通知view更新

  • 第一个红框:名字是根据xml文件自动生成的比如xml叫activity_main.xml那么就会是ActivityMainBinding
  • 第二个红框:之前的setContentView变为DataBindingUtil.setContentView(还有其他的解析布局的方法一眼就能看懂和之前没区别)databinding的出现不用再findviewById也不需要butterknife了可以直接根据id获取。
  • 第三个红框:这里就是通知view进行对应model内容更新的地方了。最主要的一句databinding.setUser(user);他会通知view进行更新。下面还有两个注释代码同样也可以通知view更新 根据文档setVariable()为设置变动的对象 executePendingBindings()将通知绑定的view 注意executependingBindings()需要在ui线程中

这里要说一下就是之前看文档在model实体类中get和set方法需要写是对应的注解和通知这里我没有使用也是可以更新的。我也用了在model中写上而不写用上述方法通知是没法更新的。所以就暂时忽略吧(如果有大神知道还请纠正告知)

Android Databinding_第4张图片
Paste_Image.png
Android Databinding_第5张图片
Paste_Image.png
Android Databinding_第6张图片
Paste_Image.png

adapter的写法

Android Databinding_第7张图片
Paste_Image.png

最后说一句

现在还是尝鲜就好。现在只支持单向绑定而且提示很少(可以忽略)不报错。我遇到编译时报错了。应该错在xml中的表达式(表达式也不会有那个红色的下划线),但却报在了java类中的方法。最后排查半天才知道(重点表达式还是跟着官方写的)所以坑还是会挺多的毕竟这才是第一版。
代码地址 https://github.com/EasonHolmes/SampleDatabinding

你可能感兴趣的:(Android Databinding)