gpt4 book ai didi

Android:GestureDetector 不会捕捉到手势

转载 作者:搜寻专家 更新时间:2023-11-01 07:40:42 25 4
gpt4 key购买 nike

我必须在我的程序中使用 GestureDetectors。一个工作精美,另一个则不然。据我所知,它们的实现方式相同。

这是实现不起作用的代码:

myExcuseGestureDetector = new GestureDetector(new excuseGestureDetector());
excuseView.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(myExcuseGestureDetector.onTouchEvent(event)){
Log.d("Excuse Gesture Return","true");
return true;
}
Log.d("Excuse Gesture Return","false");
return false;
}
});

然后我有这个 block ,它定义了 excuseGestureDetector

private class excuseGestureDetector extends SimpleOnGestureListener{
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.d("MotionEvent","onFling");
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
if(currExcuseNumber<currExcuseSet.size()){
currExcuseNumber++;
loadNextExcuse(currExcuseNumber,1);
excuseView.setInAnimation(slideLeftExcuseIn);
excuseView.setOutAnimation(slideLeftExcuseOut);
excuseView.showNext();
return true;
}
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
if(currExcuseNumber > 1){
loadNextExcuse(currExcuseNumber,0);
excuseView.setInAnimation(slideRightExcuseIn);
excuseView.setOutAnimation(slideRightExcuseOut);
excuseView.showPrevious();
return true;
}
}
} catch (Exception e) {
// nothing
}
return false;
}
}

无论出于何种原因,它根本不会记录这一举动。无论动画是否发生,程序都应打印出我试图跟踪的 Log.d("MotionEvent","onFling"),但事实并非如此。我所知道的是,它确实记录了某种触摸事件已经发生,因为它确实从我显示的第一个 block 中找出了“Excuse Gesture Return”“false”。对为什么它不注册这个 fling 有什么想法吗?

最佳答案

我不太确定为什么,但是只要我在 SimpleOnGestureListener 中为所有可能的手势设置 Overrides,它就开始工作了。显然它需要所有这些,而不仅仅是 onFling。

关于Android:GestureDetector 不会捕捉到手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4027553/

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