使用 RxView.clicks(view).subscribe
而不是普通的 view.setOnClickListener
有什么好处?
最佳答案
使用 RxView
可以有很多有用的用例。
setOnClickListener
仅在用户单击 View
时发出通知。
但是 RxView
可以处理此 UI 操作并在输入时执行许多 Rx-Java
有用的方法。
例如:
如果不耐烦的用户快速多次单击按钮,并且此单击调用一些长时间运行的操作,这将是问题所在,对吗?
使用 RxView
,您可以轻松地在处理这些点击之间添加一些暂停。这将非常有用:
RxView.clicks(mSearchBtn)
.throttleFirst(2, TimeUnit.SECONDS)
.subscribe(s -> {
// perform some actions
});
或者如果您执行了一些网络调用并且不想中止它:
boolean isRequestSended = true;
RxView.clicks(mSearchBtn)
.skipWhile(new Predicate<Object>() {
@Override
public boolean test(Object o) throws Exception {
return isRequestSended
}
})
.subscribe(s -> {
// isRequestSended = false
});
还有许多其他示例。
您可以在 this post 中查看许多用例
关于android - RxView.clicks(view).subscribe 与 view.setOnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58547091/