简介
RxBinding 能够把 Android 平台的兼容包内的 UI 控件变为 Observaber 对象. 可以把 UI 控件的事件当作 RxJava 中的数据流来使用。不同的依赖库引入了不同的控件可支持的Rxbinding
注:RxBinding包中包含RxJava的内容,所以就无需再添加RxJava的依赖了
RxBinding 的 GitHub 地址
RxBinding 的优点:
- 它是对 Android View 事件的扩展, 它使得开发者可以对 View 事件使用 RxJava 的各种操作。
- 提供了与 Rxjava 一致的回调, 使得代码简洁明了。
- 几乎支持所有的常用控件及事件, 还对 Kotlin 支持.
使用场景
可以应用于整个 App 的所有 UI 事件.
依赖
implementation 'com.jakewharton.rxbinding3:rxbinding-core:3.0.0-alpha2'
implementation 'com.jakewharton.rxbinding3:rxbinding-appcompat:3.0.0-alpha2'
implementation 'com.jakewharton.rxbinding3:rxbinding-drawerlayout:3.0.0-alpha2'
implementation 'com.jakewharton.rxbinding3:rxbinding-leanback:3.0.0-alpha2'
implementation 'com.jakewharton.rxbinding3:rxbinding-recyclerview:3.0.0-alpha2'
implementation 'com.jakewharton.rxbinding3:rxbinding-slidingpanelayout:3.0.0-alpha2'
implementation 'com.jakewharton.rxbinding3:rxbinding-swiperefreshlayout:3.0.0-alpha2'
implementation 'com.jakewharton.rxbinding3:rxbinding-viewpager:3.0.0-alpha2'
implementation 'com.jakewharton.rxbinding3:rxbinding-material:3.0.0-alpha2'
简单使用
1.点击事件
RxView.clicks(text1)
.subscribe(new Consumer<Object>() {
@Override
public void accept(@NonNull Object o) throws Exception {
Toast.makeText(MainActivity.this,"演示点击事件",Toast.LENGTH_SHORT).show();
}
});
2.长点击事件
RxView.longClicks(text2)
.subscribe(new Consumer<Object>() {
@Override
public void accept(@NonNull Object o) throws Exception {
Toast.makeText(MainActivity.this,"演示长点击事件",Toast.LENGTH_SHORT).show();
}
});
3.防止重复点击
RxView.clicks(text3)
.compose(RxUtils.useRxViewTransformer(MainActivity.this