찾다

 >  Q&A  >  본문

android - rxbinding防抖动无效什么原因

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中文网2773일 전711

모든 응답(2)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-17 17:53:22

    스로틀퍼스트

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:53:22

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

    으아악

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

    회신하다
    0
  • 취소회신하다