Android RxBinding使用教程

demo:
https://github.com/anymyna/android_laboratory

步骤:

1、 初始化


dependencies {
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
    implementation 'com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:2.2.0'
}

2、 用法

点击监听


        RxView.clicks(camera)
                .throttleFirst(2, TimeUnit.SECONDS)
                .subscribe(new Consumer<Object>() {
                    @Override
                    public void accept(Object o) throws Exception {
                        Toast.makeText(RxBindingActivity.this, "clicks", Toast.LENGTH_LONG).show();
                    }
                });

长按监听


        RxView.longClicks(camera)
                .subscribe(new Consumer<Object>() {
                    @Override
                    public void accept(Object o) throws Exception {
                        Toast.makeText(RxBindingActivity.this, "longClicks", Toast.LENGTH_LONG).show();
                    }
                });

延时操作


        Observable.timer(2, TimeUnit.SECONDS).observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<Long>() {
                    @Override
                    public void accept(Long aLong) throws Exception {
                        Toast.makeText(RxBindingActivity.this, "timer", Toast.LENGTH_SHORT).show();
                    }
                });

TextView textChanges 监听


        TextView textView = findViewById(R.id.text);
        addDisposable(RxTextView.textChanges(textView).subscribe(new Consumer<CharSequence>() {
            @Override
            public void accept(CharSequence text) throws Exception {
                Toast.makeText(RxBindingActivity.this, "textChanges", Toast.LENGTH_LONG).show();
            }
        }));

checkedChanges选中状态改变事件


        Button sms = findViewById(R.id.btn_sms);
        sms.setEnabled(false);
        CheckBox checkBox = findViewById(R.id.checkbox);
        addDisposable(RxCompoundButton.checkedChanges(checkBox)
                .subscribe(aBoolean -> {
                    Toast.makeText(RxBindingActivity.this, "checkedChanges " + aBoolean, Toast.LENGTH_LONG).show();
                }));

RecyclerView滚动事件


        RxRecyclerView.scrollEvents(mRecyclerView)
                .subscribe(new Consumer<RecyclerViewScrollEvent>() {
                    @Override
                    public void accept(RecyclerViewScrollEvent recyclerViewScrollEvent) throws Exception {
                        recyclerViewScrollEvent.dx();   //X方向滚动了dx
                        recyclerViewScrollEvent.dy();   //Y方向滚动了dy
                        recyclerViewScrollEvent.view(); //RecyclerView
                        Logger.e("recyclerViewScrollEvent.dx()"+recyclerViewScrollEvent.dx());
                    }
                });

RecyclerView滚动状态改变


        RxRecyclerView.scrollStateChanges(mRecyclerView)
                .subscribe(new Consumer<Integer>() {
                    @Override
                    public void accept(Integer integer) throws Exception {
                        Logger.e("scrollStateChanges "+integer);
                    }
                });
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值