1. 程式人生 > 程式設計 >android遮蔽按鈕連續點選的示例程式碼

android遮蔽按鈕連續點選的示例程式碼

android開發中,免不了會有很多按鈕的點選,為防止使用者故意為之,連續不停的點選按鈕,造成短時間內不必要的請求過多,或者 出現多個跳轉頁面的問題,客戶端需要對點選動作 做遮蔽處理,即遮蔽短時間內連續點選。(當然,這樣也只是儘可能減少上述問題的出現,手速夠快的情況下,還是會出現)

正確程式碼:

abstract class OnMultiClickListener(private val interval: Long = MULTI_CLICK_INTERVAL): View.OnClickListener {
  private companion object {
    private const val MULTI_CLICK_INTERVAL = 500L
  }
 
  private var mLastClickTime = 0L
 
  abstract fun onMultiClick(v: View?)
 
  final override fun onClick(v: View?) {
    v.runSafety {
      val currentTime = System.currentTimeMillis()
      //注意,這裡要使用絕對值
      if (abs(currentTime - mLastClickTime) < interval) {
        mLastClickTime = currentTime //賦值一
        return
      }
  
      mLastClickTime = currentTime //賦值二
 
      onMultiClick(v)
 
    }
  }
}

注意點:

1、如果間隔時間設定過長,可能會造成視覺上點選卡頓的現象

2、如果修改系統時間,則可能造成時間判斷出問題,進而導致按鈕點選無響應。故必須用絕對值進行比較。

3、注意兩處賦值位置

到此這篇關於android遮蔽按鈕連續點選的文章就介紹到這了,更多相關android遮蔽按鈕連續點選內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!