Cod*_*fee 6 android onclick android-fragments android-activity kotlin
如何防止用户多次点击一个按钮?
实际问题:如果用户不断快速单击按钮。单击按钮多次执行我的 api 调用。
应用的解决方案不起作用:即使您尝试在 onClick() 之后直接禁用按钮,仍然有可能发生多次单击。
Cod*_*fee 15
解决Android多次点击问题 \xe2\x80\x94 Kotlin
\n我搜索了社区并找到了惊人的解决方案,例如创建一个自定义点击侦听器,它将保留最后一次点击时间并防止在特定时间段内点击\n但是 \xe2\x80\x94 作为 Kotlin \xe2\x80\x94 的忠实粉丝,我是想要利用 lambda 和闭包的力量来非常顺利地使用一些东西。\n所以我想出了这个实现,希望对你有帮助
\n第 1 步:创建名为 SafeClickListener.kt 的类
\nclass SafeClickListener(\n\nprivate var defaultInterval: Int = 1000,\nprivate val onSafeCLick: (View) -> Unit\n ) : View.OnClickListener {\nprivate var lastTimeClicked: Long = 0\noverride fun onClick(v: View) {\n if (SystemClock.elapsedRealtime() - lastTimeClicked < defaultInterval) {\n return\n }\n lastTimeClicked = SystemClock.elapsedRealtime()\n onSafeCLick(v)\n } \n }\nRun Code Online (Sandbox Code Playgroud)\n第 2 步:添加扩展功能以使其适用于任何视图,这将创建一个新的 SafeClickListener 并将工作委托给它。
\n fun View.setSafeOnClickListener(onSafeClick: (View) -> Unit) {\n val safeClickListener = SafeClickListener {\n onSafeClick(it)\n }\n setOnClickListener(safeClickListener)\n }\nRun Code Online (Sandbox Code Playgroud)\n步骤3:现在使用起来非常容易。只需将button1.setonclicklistner 替换为setSafeOnClickListener 即可。
\nsettingsButton.setSafeOnClickListener {\n showSettingsScreen()\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3112 次 |
| 最近记录: |