前言
自从用上RxJava后彻底迷上Rx系列响应式编程,从本篇开始一起来学习一下Rx套餐之一的RxBinding。RxBinding是什么?它是一组开源库,来自大神Jake Wharton之手,可将Android中各类UI控件的动作事件转换为RxJava中的数据流。也就是说使用RxBinding,我们就可以以RxJava的形式来处理UI事件。本篇主要讲解其中RxView的相关View事件如何绑定。
RxBinding中主要包含RxView、RxTextView、RxAdapterView、RxCompoundButton等等。由于全写一起篇幅太长,我就一篇讲解一种了。本系列主要讲解以上常用的4种,详细内容可飞机到:
Jake Wharton的RxBinding
依赖
本系列围绕我自己编写的RxBindingDemo来进行讲解,项目中主要使用ButterKnife做View注入,RxBinding做事件绑定。RxBindingDemo代码在文末有给地址。
注意:RxBinding包中包含RxJava的内容,所以就无需再添加RxJava的依赖了。
dependencies {
......
compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
BaseActivity
相信学习过RxJava的码友一定记得,使用RxJava实例化的Disposable需在不用时及时销毁。
由于每个Activity中都写一套add与clear的方法会造成代码冗余,所以我将它们封装到BaseActivity中方便统一对Disposable进行管理,以及ButterKnife的统一绑定与解绑。
献上代码:
public abstract class BaseActivity extends AppCompatActivity {
public CompositeDisposable mCompositeDisposable;
private Unbinder mUnbinder;
@Override
protected void