recherche

Maison  >  Questions et réponses  >  le corps du texte

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中文网2813 Il y a quelques jours744

répondre à tous(2)je répondrai

  • 巴扎黑

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

    accélérateur d'abord

    répondre
    0
  • PHP中文网

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

    L'unité de temps est erronée, 1000 microsecondes = 1 milliseconde = 0,001 seconde
    Ce temps n'a aucun effet anti-tremblement
    L'intention initiale devrait être de 1000 millisecondes, soit 1 seconde
    L'unité la conversion est la suivante

    TimeUnit{
        NANOSECONDS,// 纳秒=0.000000001秒
        MICROSECONDS,//微妙=0.000001秒
        MILLISECONDS,//毫秒=0.001秒
        SECONDS,//秒
        MINUTES,//分钟
        HOURS,//小时
        DAYS//天
    }

    De plus,
    throttleFirst() et throttleLast() peuvent tous deux obtenir un effet anti-tremblement
    Les effets sont légèrement différents
    throttleFirst() ne prend que la première fois lorsqu'on clique en continu, et les clics suivants sont ignoré
    throttleLast() ne prend que le dernier clic en cliquant continuellement et ignore les clics précédents

    répondre
    0
  • Annulerrépondre