gpt4 book ai didi

android - onSingleTapConfirmed() 在 onDoubleTap() 之后被引发

转载 作者:行者123 更新时间:2023-11-29 21:40:20 25 4
gpt4 key购买 nike

我遇到了标题中描述的问题,想知道我做错了什么还是这是另一个 android 故障。以下是有关问题的更多信息:我有一个 ImageView ,支持双击缩放和捏合缩放,但想使用单击短按在操作栏中显示图像标题(实际上调用 getActionBar().show() 和 hide())。带有图像的 View 也在 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.我确实通过使用事件监听器调用之间的时间差解决了这个问题,比如 if (!((System.currentTimeMillis() - start) < 500)) 但这感觉不对,我想有一个正确的方法。

最佳答案

我可能是错的,这需要确认。然而,OnSingleTapConfirmed() 仅在 android 确认单击已发生时才会被消耗(通常这需要一段时间)。我认为使用 OnSingleTapUp() 会更好。

来自 http://developer.android.com/reference/android/view/GestureDetector.SimpleOnGestureListener.html

public boolean onSingleTapConfirmed(MotionEvent e)

Notified when a single-tap occurs.

Unlike onSingleTapUp(MotionEvent), this will only be called after the detector is confident that the user's first tap is not followed by a second tap leading to a double-tap gesture.

关于android - onSingleTapConfirmed() 在 onDoubleTap() 之后被引发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17322977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com