cari

Rumah  >  Soal Jawab  >  teks badan

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中文网2812 hari yang lalu741

membalas semua(2)saya akan balas

  • 巴扎黑

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

    throttleFirst

    balas
    0
  • PHP中文网

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

    Unit masa salah, 1000 mikrosaat = 1 milisaat = 0.001 saat
    Kali ini tiada kesan anti goncang sama sekali
    Niat asal hendaklah 1000 milisaat, iaitu 1 saat
    Unit penukaran adalah seperti berikut

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

    Selain itu,
    throttleFirst() dan throttleLast() kedua-duanya boleh mempunyai kesan anti-goncang
    Kesannya sedikit berbeza
    Apabila throttleFirst() diklik secara berterusan, hanya kali pertama diambil, dan klik seterusnya diabaikan
    throttleLast() hanya mengambil klik terakhir apabila mengklik secara berterusan dan mengabaikan klik sebelumnya

    balas
    0
  • Batalbalas