我面对标题中描述的问题,并且想知道我做错了什么或这是另一个Android故障。以下是有关问题的更多内容: 我有一个图像视图,支持双击缩放和捏缩放,但想使用单击短按钮在动作栏中显示图像标题(实际上调用getActionBar()。show()和hide())。图像视图也在ViewPager中(在支持库v4中找到)。我目前正在做以下事情: 在viewpager中,我这样做是为了在缩放到缩放时停止页面更改:
// view in the fragment is a reference to MyZoomableImageView
viewPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
currentFragment.view.dispatchTouchEvent(event);
if (currentFragment.view.downloaded && (!currentFragment.view.whole || event.getPointerCount() > 1)) {
return true;
} else {
return false;
}
}
});
在我的customImageView中,我添加了一个带有此侦听器的手势检测器:
public class GestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.d(TAG, "DOUBLE");
zoom();
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
Log.d(TAG, "SINGLE");
Activity a = ((Activity) context);
ActionBar action = a.getActionBar();
if (action.isShowing()) {
action.hide();
} else {
action.show();
}
}
return true;
};
任何人都可以发现我做错了什么,为什么双击后记录的是单次和双重按摩。
PS.I确实通过使用事件监听器之间的时间差来解决这个问题,如if(!((System.currentTimeMillis() - start)< 500))但这只是感觉不对,我猜有一个正确的方法来做到这一点。
答案 0 :(得分:2)
我可能错了,这需要得到确认。但是,OnSingleTapConfirmed()
仅在android单击时发生单次点击时消耗(通常需要一段时间)。我认为使用OnSingleTapUp()
会更好。
来自http://developer.android.com/reference/android/view/GestureDetector.SimpleOnGestureListener.html
public boolean onSingleTapConfirmed(MotionEvent e)
单击发生时通知。
与onSingleTapUp(MotionEvent)不同,这只会在之后调用 探测器确信用户的第一次点击后面没有a 第二次敲击导致双击手势。
答案 1 :(得分:0)
你有没有可能
设置/辅助功能/放大手势
开启?当这些打开时,双击将(在大多数情况下)报告为onSingleTapConfirmed()。另见这个错误: