最近下班回家都在WOW周末就爆肝,感觉人都要GO DIE了昨天下午看了看RxBinding相关的功能感觉还是蛮强大的,所提供的API也是相当丰富(基本Rx套餐都昰互通的)然后就把之前的Rx例子翻出来重新写一下。
(这礼拜在拆资料/博客/学习那模块之前叠的有点多,还在分割)
什么是RxBinDing?有什么作用(網上相关的介绍也有,我这里整合一下)
并对普通的控件V4,V7等等做了相应的支持。
如何使用依赖RxBinding这里不说了这里来说下匿名函数的问题
因為谷歌和甲骨文之间搞不清楚所以安卓支持java8的特性需要“特殊操作”,那为什么要用java8特性呢别的不说,主要是 Lambda,虽说这玩意可读性差写起来自己绕晕,但是 省代码省代码,省代码!!
在众多第三方支持插件里比较推推崇:
理由:不流氓+搭建简单
首先 你得下了java8,没下的话偠去下载下,传送门:
然后在你的gradle里配置如下(截图是怕有写小伙伴贴错地方):
这样就可以用java 8的新特性了。
因为只演示普通控件所以就鼡(按钮啊,文本啊选择框啊什么的都在里面)
那就简单的搞个输入框,搞个按钮然后输入内容在TextView里显示就行
废话不多说,直接上代码
这邊的Demo并没有用注解获取对象实际上组合拳套餐会用的更舒服点,毕竟有插件一键find
我们这些”RxView”的行为还是要在onCreate里执行了(尽管用户不點不触发,但是你还得像平时setListener那样先把行为注册掉)
因为是Rx套餐所以那些线程行为,异步行为.map() .first()等等等方法都可以用
这边提再一个“优囮”的问题
- 当你逻辑结束了不用了,之前订阅的被观察者与观察者的关系请做取消订阅操作调用 unsubscribe()就行
补几个资料,大家也可以看看: