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");
}
});
throttleFirst
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
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