Существует множество полезных вариантов использования, которые вы можете использовать, используя 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
});
и множество других примеров.
Многие из случаев использования вы можете проверить в этот пост