项目中遇到快速点击两次时,会出现两个相同界面,
解决办法:
在父类activity中重写事件分发的方法dispatchTouchEvent()
原理:
当在activity中快速点击某个控件,时间间隔不超过300ms,此时activity拦截click事件,这是点击的view将得不到响应,代码如下:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
if (isFastDoubleClick()) {
return true;
}
}
return super.dispatchTouchEvent(ev);
}
public boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
lastClickTime = time;
return timeD <= 300;
}
本文介绍了一种防止在短时间内连续点击导致界面重复加载的方法。通过在Activity中重写dispatchTouchEvent()方法,并利用isFastDoubleClick()判断两次点击的时间间隔是否小于300毫秒来避免重复点击的问题。
1082

被折叠的 条评论
为什么被折叠?



