Rxjava防止抖动 and 重复点击(多View监听)
- RxMoreView 类
import android.view.View;
import androidx.annotation.CheckResult;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.annotations.NonNull;
import io.reactivex.functions.Consumer;
import static com.ms.security.rx.rxbinding.Preconditions.checkNotNull;
import static com.ms.security.rx.rxbinding.Preconditions.checkUiThread;
/**
* 利用Rxjava防止抖动 and 重复点击
*/
public class RxMoreView {
/**
* 防止重复点击
*
* @param target 目标view
* @param action 监听器
*/
public static void setOnClickListeners(final ActionRxView action, @NonNull View... target) {
for (View view : target) {
RxMoreView.onClick(view).throttleFirst(1000, TimeUnit.MILLISECONDS).subscribe(new Consumer<View>() {
@Overrid