短视频带货源码,点击防抖动功能

it2025-12-08  14

短视频带货源码,点击防抖动功能相关的代码,实现: 1、添加依赖

implementation 'io.reactivex.rxjava2:rxjava:2.2.9' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'

2、封装工具类

object ViewUtil { fun onClick(view: View, duration: Long, onNext: Consumer<in View>): Disposable { return ViewObservable(view).throttleFirst(duration, TimeUnit.MILLISECONDS).subscribe(onNext) } private class ViewObservable(view: View) : Observable<View>() { val mView = view override fun subscribeActual(observer: Observer<in View>?) { if (observer != null) { Listener(mView, observer).let { observer.onSubscribe(it) mView.setOnClickListener(it) } } } } private class Listener(view: View, observer: Observer<in View>) : MainThreadDisposable(), View.OnClickListener { val mView = view val mObserver = observer override fun onDispose() { mView.setOnClickListener(null) } override fun onClick(v: View?) { if (!isDisposed && v != null) { mObserver.onNext(v) } } } }

3、具体使用

class MainActivity : AppCompatActivity() { private val mCompositeDisposable = CompositeDisposable() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val disposableOne = ViewUtil.onClick(buttonOne, 500, Consumer { Log.e("aa", "**buttonOne:" + System.currentTimeMillis()) }) val disposableTwo = ViewUtil.onClick(buttonTwo, 500, Consumer { Log.e("aa", "**buttonTwo:" + System.currentTimeMillis()) }) mCompositeDisposable.add(disposableOne) mCompositeDisposable.add(disposableTwo) } override fun onDestroy() { super.onDestroy() mCompositeDisposable.clear() } }

以上就是 短视频带货源码,点击防抖动功能相关的代码,更多内容欢迎关注之后的文章

最新回复(0)