RxView.clicks (view) .subscribe vs view.setOnClickListener - PullRequest
1 голос
/ 24 октября 2019

В чем преимущество использования RxView.clicks(view).subscribe вместо обычного view.setOnClickListener?

1 Ответ

2 голосов
/ 25 октября 2019

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

и множество других примеров.

Многие из случаев использования вы можете проверить в этот пост

...