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: 按钮点击");
        }
    });
上一篇 RxJava2学习之七:关键词搜索
下一篇 RxJava2学习之九:购物车合并本地和网络数据
目录
文章列表
1 Spring Cloud Gateway自定义过滤器进行限流
Spring Cloud Gateway自定义过滤器进行限流
2
推荐云知声免费语音SDK
推荐云知声免费语音SDK
3
ElasticSearch 7 搜索(9)排序查询
ElasticSearch 7 搜索(9)排序查询
4
Laravel 5 常用命令及性能优化
Laravel 5 常用命令及性能优化
5
Flutter中的剪裁
Flutter中的剪裁
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。