Android 功能防抖 的实现
生活随笔
收集整理的這篇文章主要介紹了
Android 功能防抖 的实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
功能防抖:? 在規(guī)定時(shí)間內(nèi)多次觸發(fā)某一個(gè)功能 ,僅會(huì)響應(yīng)第一次觸發(fā)操作?
我們可以設(shè)置時(shí)間顯示,也可以使用RxJava 的 throttleFirst 來(lái)實(shí)現(xiàn)效果
?普通的判斷寫(xiě)法可以看我的這一遍博客
使用?throttleFirst?
1 引入庫(kù)
implementation "io.reactivex.rxjava3:rxjava:3.0.0-RC5"implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'implementation 'com.jakewharton.rxbinding3:rxbinding:3.1.0'
這里對(duì)一個(gè)TextView 做2秒內(nèi)監(jiān)聽(tīng)
private TextView textView;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.rxjava_activity_layout);textView = findViewById(R.id.rx_dou);RxView.clicks(textView).throttleFirst(2,TimeUnit.SECONDS).subscribe(new io.reactivex.Observer<Unit>() {@Overridepublic void onSubscribe(io.reactivex.disposables.Disposable d) {Log.d("-----rxjava", "開(kāi)始采用subscribe連接");}@Overridepublic void onNext(Unit unit) {Log.d("-----rxjava", "對(duì)Next事件作出響應(yīng):" + unit);}@Overridepublic void onError(Throwable e) {Log.d("-----rxjava", "對(duì)Error事件作出響應(yīng)" + e);}@Overridepublic void onComplete() {Log.d("-----rxjava", "對(duì)onComplete事件作出響應(yīng):RxJava認(rèn)識(shí)完成");}});
}
使用RxBind 監(jiān)聽(tīng)view 來(lái)實(shí)現(xiàn)2s內(nèi)再次點(diǎn)擊無(wú)響應(yīng)效果
?
總結(jié)
以上是生活随笔為你收集整理的Android 功能防抖 的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 空调如何检修?
- 下一篇: 泰国一套别墅多少钱?