RX java/Android如何使用debounce操作符在每次点击时实现此toast
我有一个ImageView,点击它应该会显示toast,也会在点击图像视图时生成api,所以我决定在Rx中使用Debounce操作符 但现在thost并不是每次点击都可见。下面是代码RX java/Android如何使用debounce操作符在每次点击时实现此toast,java,android,kotlin,rx-java,rx-android,Java,Android,Kotlin,Rx Java,Rx Android,我有一个ImageView,点击它应该会显示toast,也会在点击图像视图时生成api,所以我决定在Rx中使用Debounce操作符 但现在thost并不是每次点击都可见。下面是代码 cartSubscriptionDecrement = RxView.clicks(holder.databinding .cartQuantityLayout.ivDecreaseQuantity) .debounce(1000, TimeUnit.MILLISEC
cartSubscriptionDecrement = RxView.clicks(holder.databinding
.cartQuantityLayout.ivDecreaseQuantity)
.debounce(1000, TimeUnit.MILLISECONDS)
.subscribe { next ->
cartQuantityEvent.onCartQuantityDecremented(cartSubscriptionDecrement!!)
}
我需要在每次单击imageView时显示toast
我试图为图像视图使用一个单独的onclick方法,但在调试过程中,我发现该控件从未出现在onclick方法中这是我的另一个onclick方法
如何在每次单击时实现此toast,而不是在每次单击时进行api调用(使用Debounce运算符)。您必须将“.subscribeOn(AndroidSchedulers.mainThread())”应用于所有RxBinding事件,例如“RxView.clicks()”有多种方法可以满足您的要求。我在下面列出了最简单的例子,但需要更多地考虑使用doOnNext的潜在副作用 刚刚意识到包名是错误的,但是这个例子可以正常运行 下面是与示例最相关的代码。关键是,你需要在展示祝酒词之后而不是之前去抖
RxView.clicks(image1)
.doOnNext(imageClickedEvent -> {
// Show toast every time onNext is called (this will also log to LogCat)
showToast();
})
.debounce(1000, TimeUnit.MILLISECONDS)
.subscribe(clickEvent -> {
makeApiCall();
});
我试图为图像视图使用一个单独的onclick方法,但在调试过程中,我发现该控件从未出现在onclick方法中这是我的另一个onclick方法
我相信是这样的,因为RxClicks在ImageView上设置了一个侦听器,这发生在框架设置onClick侦听器之后,如果我回忆正确,那么在
视图上只能有一个OnClickListener
。因此,RxView.clicks(imageView)
接收的是click事件,而不是您单独创建的方法 holder.deleteCartIcon!!。setOnClickListener{v->Log.e(“单击”、“单击”)}上面是另一个onclick方法