1. 程式人生 > >RxJava實現view的雙擊事件

RxJava實現view的雙擊事件

public void doubleClickDetect(View view){
        Observable<Void> observable = RxView.clicks(view).share();
        observable.buffer(observable.debounce(200, TimeUnit.MILLISECONDS))
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Action1<List<Void>>() {
                    @Override
                    public void call(List<Void> voids) {
                        if(voids.size() >= 2){
                        	//double click detected
                        }
                    }
                }, new Action1<Throwable>() {
                    @Override
                    public void call(Throwable throwable) {
                        Timber.e(throwable, "error");
                    }
                });
    }


注:rxView是rxBinding庫裡面的物件