Maison > Questions et réponses > le corps du texte
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中文网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