场景:
有两个活动...活动A有一个图像按钮,用于启动在屏幕上显示活动B的意图.活动B有一个图像按钮来完成()本身并导致活动A被显示.这些按钮位于每个活动的相同位置
问题:
在活动B中,当我双击按钮(而不是单击)时,活动A变为可见但很快再次显示活动B!
第二个触摸事件似乎贯穿于活动A,似乎我可以通过清除活动A的onCreate()中的一些触摸缓冲区来解决这个问题.
如何才能做到这一点?还是有另一个修复?
我在模拟器(2.2)和手机(2.3.3)上重现了这一点
小智 5
我遇到了同样的问题.令人惊讶的是,网上关于此的信息非常少.我的解决方案结合了这个问题的评论和onTouchEvent从未调用过MapActivity:
public class MyActivity extends FragmentActivity {
/** Stores the time (as per SystemClock.uptimeMillis()) of the last
* call to onResume() in order to filter out touch events which occurred before
* the activity was visible. */
private long resumeTime = 0;
@Override
public void onResume() {
super.onResume();
resumeTime = SystemClock.uptimeMillis();
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getEventTime() < resumeTime) {
Log.v(TAG, "Discarded touch event with time earlier than onResume()");
return true;
}
return super.dispatchTouchEvent(event);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2346 次 |
| 最近记录: |