功能防抖: 在规定时间内多次触发某一个功能 ,仅会响应第一次触发操作
我们可以设置时间显示,也可以使用RxJava 的 throttleFirst 来实现效果
使用 throttleFirst
1 引入库
implementation "io.reactivex.rxjava3:rxjava:3.0.0-RC5"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.jakewharton.rxbinding3:rxbinding:3.1.0'
这里对一个TextView 做2秒内监听
private TextView textView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rxjava_activity_layout);
textView = findViewById(R.id.rx_dou);
RxView.clicks(textView).throttleFirst(2,TimeUnit.SECONDS).subscribe(new io.reactivex.Observer<Unit>() {
@Override
public void onSubscribe(io.reactivex.disposables.Disposable d) {
Log.d("-----rxjava", "开始采用subscribe连接");
}
@Override
public void onNext(Unit unit) {
Log.d("-----rxjava", "对Next事件作出响应:" + unit);
}
@Override
public void onError(Throwable e) {
Log.d("-----rxjava", "对Error事件作出响应" + e);
}
@Override
public void onComplete() {
Log.d("-----rxjava", "对onComplete事件作出响应:RxJava认识完成");
}
});
}
使用RxBind 监听view 来实现2s内再次点击无响应效果