解决Android中多次点击启动多个相同界面的问题
来源:互联网 发布:mac怎么关闭开机密码 编辑:程序博客网 时间:2024/05/19 22:26
2015.12.02 补充说明
下面方法虽然解决了连续点击问题,但也会造成页面滑动时卡顿现象(即第二次滑动时,无响应)
经过认证,发现最好的解决方法是使用手势GestureDetector。通过定义一个手势识别,其中有一个函数
@Override
public boolean onDoubleTap(MotionEvent e) {
return true;
},双击返回true即可。
点击(此处)折叠或打开
- @Override
-
public boolean dispatchTouchEvent(MotionEvent ev) { -
if (ev.getAction() == MotionEvent.ACTION_DOWN) { -
if (Util.isFastDoubleClick()) { -
return true; -
} -
} -
return super.dispatchTouchEvent(ev); -
}
点击(此处)折叠或打开
- public
static boolean isFastDoubleClick() { -
long time = System.currentTimeMillis(); -
long timeD = time - lastClickTime; -
if (timeD >= 0 && timeD <</span>= 1000) { -
return true; -
} else { -
lastClickTime = time; -
return false; -
} -
}
下面方法虽然解决了连续点击问题,但也会造成页面滑动时卡顿现象(即第二次滑动时,无响应)
经过认证,发现最好的解决方法是使用手势GestureDetector。通过定义一个手势识别,其中有一个函数
@Override
public boolean onDoubleTap(MotionEvent e) {
return true;
},双击返回true即可。
在Android开发过程中我们经常会碰到这样的问题,当用户点击一个View启动一个新的Activity的时候,如果快速地多次点击就会启动多个相同的界面。虽然说很少会有用户这么玩自己的手机,但是一旦出现这样的情况确实是很不好的体验。刚好前段时间研究过lanchmode,那我们把要启动的Acitivity改为singleTop,这样最上面只能有一个相同的界面,问题应该解决了吧?实验了一下,只能说基本满足要求了,但是有一些特殊情况如使用startActivityForResult启动的时候还是不好用。下面来一劳永逸地解决这个问题吧。
首页,在项目中我们要创建一个父类Activity,就叫FatherActivity吧,实践证明,项目中使用这么一个父类真是好处多多啊,在这里就不一一列举了。然后需要重写一下父类的dispatchTouchEvent方法,仅仅需要几行代码。思想就是每次有按下的事件的时候做一下时间间隔的判断,如果是快速点击就直接拦截下来。
点击(此处)折叠或打开
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
if (Util.isFastDoubleClick()) {
return true;
}
}
return super.dispatchTouchEvent(ev);
}
对于快速点击的判断,我们可以自己定义想要的事件间隔,在这里我定义的是一秒钟:
点击(此处)折叠或打开
public static boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
if (timeD >= 0 && timeD <</span>= 1000) {
return true;
} else {
lastClickTime = time;
return false;
}
}
最后只要让所有的Activity都继承FatherActivity就可以了。
0 0
- 解决Android中多次点击启动多个相同界面的问题
- 解决Android中多次点击启动多个相同界面的问题
- 解决Android中多次点击启动多个相同界面的问题
- Android中多次点击启动多个相同界面的问题
- Android在界面中重复点击导致多次跳转或打开多个相同界面的问题的解决方式
- 按钮点击多次出现多个相同页面问题
- iOS利用runtime,解决多次点击相同button,导致重复跳转的问题
- 利用runtime,解决多次点击相同button,导致重复跳转的问题
- iOS- 利用runtime,解决多次点击相同button,导致重复跳转的问题
- iOS开发--利用 runtime,解决多次点击相同 button,导致重复跳转的问题
- Android之关于点击多次的导致多个页面问题
- 防止多次快速点击打开多个activity的问题
- 防止多次快速点击打开多个activity的问题
- iOS - 解决短时间多次点击按钮,多次响应的问题
- Android中多次点击控件问题
- 安卓屏幕宽高分辨率和多次快速点击导致启动多个Activity问题
- 彻底解决全界面多次点击Button的问题
- Android学习之解决多次点击导致Toast不断弹出的问题
- Ajax通过jsonp实现跨域访问,访问成功但走error不走success的的问题解决
- POI2011 题解
- 从UDP的”连接性”说起–告知你不为人知的UDP
- Unity中的协同函数
- 怎样检查单元格里的空格
- 解决Android中多次点击启动多个相同界面的问题
- VS2010/MFC编程入门之三十九(文档、视图和框架:概述)
- 建议38:小心闭包中的陷阱
- iOS UIView动画实践(五):Keyframe Animation
- map、string使用的注意事项
- PCI-1780板卡计数功能调用
- 冒泡排序实现整数数组的排序
- Android BroadcastReceiver的简单使用
- Node初学者入门,一本全面的NodeJS教程(转)