android - rxbinding防抖动无效什么原因
PHP中文网
PHP中文网 2017-04-17 17:51:22
0
2
737
RxView.clicks(activityNewsButton)
                .throttleLast(1000,TimeUnit.MICROSECONDS)
                .subscribe(new Action1<Void>() {
                    @Override
                    public void call(Void aVoid) {
                        System.out.println("click");
                    }
                });

经过调试,这样子还是会输出很多个click,好像并没有成功防抖动,为什么
还有compoundbutton也不能实现这个功能

RxCompoundButton.checkedChanges(schoolBusSwitchButton)
                .throttleLast(1000, TimeUnit.MICROSECONDS)
                .subscribe(new Action1<Boolean>() {
                    @Override
                    public void call(Boolean aBoolean) {
                        System.out.println("switch");
                    }
                });
PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(2)
巴扎黑

스로틀퍼스트

Ty80

시간 단위가 잘못되었습니다. 1000마이크로초 = 1밀리초 = 0.001초
이번에는 흔들림 방지 효과가 전혀 없습니다
원래 의도는 1000밀리초여야 하는데, 즉 1초입니다
단위는 변환은 다음과 같습니다

으아악

추가로
throttleFirst()와 throttleLast()는 모두 흔들림 방지 효과를 얻을 수 있습니다
효과는 약간 다릅니다
throttleFirst()는 계속해서 클릭할 때 처음에만 사용되며 후속 클릭은 무시됨
throttleLast()는 계속 클릭할 때 마지막 클릭만 수행하고 이전 클릭은 무시합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿