android - rxbinding防抖动无效什么原因
PHP中文网
PHP中文网 2017-04-17 17:51:22
0
2
712
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中文网

认证高级PHP讲师

全員に返信(2)
巴扎黑

スロットルファースト

いいねを押す +0
Ty80

時間単位が間違っています。1000 マイクロ秒 = 1 ミリ秒 = 0.001 秒
この時間には手ぶれ補正効果がまったくありません
本来の意図は 1000 ミリ秒、つまり 1 秒であるはずです
単位変換は以下の通りです

リーリー

さらに、
throttleFirst() と throttleLast() はどちらも手ぶれ補正効果を実現できます
効果は若干異なります
throttleFirst() は、連続クリックした場合にのみ実行され、その後のクリックは無視されました
throttleLast() は、継続的にクリックした場合に最後のクリックのみを受け取り、前のクリックは無視します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート