RxBinding java和kotlin的区别
在安卓开发中,经常会需要进行一些限制操作,对一些事件进行监听,我们自己写起来可能会比较麻烦,Jake Wharton大神为我们写了一套更加方便的框RxBinding,在java和kotlin中使用有所区别,之前都是用Java写的,现在项目用了kotlin,就突然不会用了,后面查了一些资料,看了一下源码,发现原理都是一样的,记录一下。
防止快速点击
在java中使用
RxView.clicks(view) //具体的view视图
.throttleFirst(2000, TimeUnit.MILLISECONDS) //间隔时间
.subscribeOn(AndroidSchedulers.mainThread()) //在主线程
.subscribe(new Consumer(){
@Override
public void accept(Object o) throws Exception { //点击事件操作
});
在kotlin 中使用
view.clicks()
.throttleFirst(2000, TimeUnit.MILLISECONDS)
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe{ //具体操作
}
输入框内容改变时
在java中使用
RxTextView.textChangeEvents(view)
.debounce(1500, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.mainThread())
.subscribe(textViewTextChangeEvent ->{ //具体操作
});
在kotlin中使用
view.textChangeEvents()
.debounce(1500, TimeUnit.MILLISECONDS)
.subscribeOn(mainThread())
.subscribe { //具体操作
}
其他类型的大致也差不多