當用戶在短時間內多次點擊按鈕時,就會呼叫多個事件。例如,我們有一個名為“查看購物車”的按鈕,當用戶單擊它時,將打開“購物車螢屏”。問題是,如果用戶多次點擊“查看購物車”按鈕,“購物車螢屏”將被多次打開。以下是我找到的解決方案代碼。
// variable to prevent double tapping
private var lastClickTime: Long = 0
... ...
viewDataBinding?.layoutViewCart?.setOnClickListener {
openCart()
}
// Open Cart page
private fun openCart() {
if (SystemClock.elapsedRealtime() - lastClickTime > 500) {
lastClickTime = SystemClock.elapsedRealtime()
... ... ...
}
}
但是對于所有的組件,所有的clickedListeners都寫這段代碼是不好的。我們有更好的解決方案嗎?
uj5u.com熱心網友回復:
你在那里做到了 90%。您可以將上次點擊計時器抽象為自己的類,該類包裝了實際的onClickListner. 當你實作它時,你覆寫了包裝器,然后你就不必一遍又一遍地制作相同的邏輯。這是一個例子,Java但應該很容易轉換。
如何防止快速雙擊按鈕
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/392504.html
