Android 使用RxBinding同步两个视图
我使用RxJava的throttleFirst一秒钟来避免快速点击按钮,但是我也希望在点击按钮时,第二个按钮也被禁用一秒钟,反之亦然, 所以,简而言之,我不允许快速点击这两个按钮一个接一个。。。你推荐什么?我可以使用RxBinding实现这一点吗Android 使用RxBinding同步两个视图,android,rx-java2,throttling,rx-binding,Android,Rx Java2,Throttling,Rx Binding,我使用RxJava的throttleFirst一秒钟来避免快速点击按钮,但是我也希望在点击按钮时,第二个按钮也被禁用一秒钟,反之亦然, 所以,简而言之,我不允许快速点击这两个按钮一个接一个。。。你推荐什么?我可以使用RxBinding实现这一点吗 RxView.clicks(button) .throttleFirst(1000, TimeUnit.MILLISECONDS) .subscribe {
RxView.clicks(button)
.throttleFirst(1000, TimeUnit.MILLISECONDS)
.subscribe {
doSomething()
}
这里有一个可能的方法
将每个流的输出映射到订阅服务器中将处理的某个已知值
merge
将两个流合并在一起,然后throttleFirst
合并的流RxView.clicks(button1).map { "button1" }
.mergeWith(RxView.clicks(button2).map { "button2" })
.throttleFirst(1, TimeUnit.SECONDS)
.subscribeBy(
onNext = { value ->
if(value == "button1") {
// handle button1 click
} else {
// handle button2 click
}
},
onError = {
...
}
)
也许不是最优雅的,但希望它至少能激发一些思考