RxJava2学习之八:防止按钮重复(连续)点击

RxBinding

RxJava实现数据与视图的绑定使用到了RxBinding。RxBinding是一个开源项目,可以实现数据层与View层的绑定,当数据发生变化,View会自动更新UI。

RxBinding:https://github.com/JakeWharton/RxBinding

注意:RxBinding目前只支持RxJava1

RxJava操作符

本例涉及的RxJava操作符:

  • ThrottleFirst允许设置一个时间长度,之后它会发送固定时间长度内的第一个事件,而屏蔽其它事件,在间隔达到设置的时间后,可以再发送下一个事件

代码实现

添加依赖

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.jakewharton.rxbinding:rxbinding:1.0.0'

RxJava实现

Button button = (Button) this.findViewById(R.id.prevent_duplicate_click);
RxView.clicks(button).throttleFirst(1, TimeUnit.SECONDS)
    .subscribe(new Observer<Void>() {
        @Override
        public void onCompleted() {

        }

        @Override
        public void onError(Throwable e) {

        }

        @Override
        public void onNext(Void aVoid) {
            Log.i(TAG, "onNext: 按钮点击");
        }
    });

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/25/rxjava2-learning-8-preventing-repeated-continuous-clicking-of-button/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
RxJava2学习之八:防止按钮重复(连续)点击
RxBinding RxJava实现数据与视图的绑定使用到了RxBinding。RxBinding是一个开源项目,可以实现数据层与View层的绑定,当数据发生变化,View会自动更新UI。 RxB……
<<上一篇
下一篇>>
文章目录
关闭
目 录