android - RxView.clicks(view).subscribe 与 view.setOnClickListener

标签 android view rx-java

使用 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/

相关文章:

javascript - 移动浏览器 : update element on back button

java - 扩展android View类并影响所有子类

ios - 使用 ScrollView 缩放时如何使 ImageView 始终位于屏幕中心?

python - Django 新手关于使用模型中的子对象定义对象以在模板中使用的问题

android - 动态组合多个 Retrofit Observable

android - 在 onCreate 之前将来自 mySQL 的信息放入 Fragment textView 中

java - 如何在 Android 上使用 tabHost

rx-java - RxJava - 如何获取列表的第一个元素并将其作为 Observable 返回

android - 在 Retrofit 2.0 中使用 Mockito

android - ScrollView 中的约束布局