唐山网站制作案例网站设计流程软件
web/
2025/10/2 20:04:30/
文章来源:
唐山网站制作案例,网站设计流程软件,wordpress 添加插件,集团公司网站推广方案怎么做背景#xff1a;在测试中#xff0c;测试MM总喜欢连续重复点击Button#xff0c;如果click事件的处理业务#xff0c;稍微有些耗时#xff0c;或者设备反应比较慢时#xff0c;就会响应2遍处理#xff0c;导致错误的现象出现。 前提#xff1a;click事件的处理业务在测试中测试MM总喜欢连续重复点击Button如果click事件的处理业务稍微有些耗时或者设备反应比较慢时就会响应2遍处理导致错误的现象出现。 前提click事件的处理业务是耗时操作(允许在主线程限制以内的耗时) 发生情景UI中单个button 多个button 解决方案有两种1.setEnabled() 2.添加标志量mClicked 3.判断相邻两次点击的时间间隔 对于单个button处理较简单 方案1onClick() { setEnabled(false); businessHandle(End: setEnabled(true);)} //不推荐体验效果很不好 方案2onClick() { if(mClicked) return; mClicked true; businessHandle(End: mClicked false;)} 方案3onClick() { if(isFastClick()) return; mClickLastTime System.currentTimeMillis(); businessHandle()} private static final long MAX_FAST_CLICK_INTERVAL 500; private long mClickLastTime; private boolean isFastClick() { long clickTime System.currentTimeMillis(); if (clickTime - mClickLastTime 0 clickTime - mClickLastTime MAX_FAST_CLICK_INTERVAL) { return true; } return false; } 对于多个button需要增加handler特殊处理防止button响应错乱 Handler mHandler new Handler(){ handleMessage(msg) { if(msg.what ClickWhat) { switch(msg.obj vId) {setEnabled(false); HandleForvId(End: setEnabled(true))} //不推荐体验效果很不好 //switch(msg.obj vId) {mClickedtrue; HandleForvId(End: mClickedfalse)} //switch(msg.obj vId) {mClickLastTime System.currentTimeMillis();HandleForvId();} } } 方案1onClick() {mHandler.obtainMessage(what, v.getId())} 方案2onClick(View v) {if(mClicked) return;mHandler.obtainMessage(what, v.getId())} 方案3onClick(View v) {if(isFastClick()) return; mHandler.obtainMessage(what, v.getId())} 转载于:https://www.cnblogs.com/shen148134/p/4422935.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85795.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!