在过去的几个小时里,我一直在打破我的头脑,用Google搜索谷歌,而StackOverflow或其他地方的例子都没有为我工作,所以在这里……
我有一个自定义视图,它扩展了LinearLayout并实现了GestureDetector.OnGestureListener.
在我的自定义布局中,我有3个按钮,每个按钮都有一个点击监听器.
我想要的是能够在视图中随处运行以执行某些操作,但也能够单击按钮.
如果我在视图内部而不是通过其中一个按钮,我的onFling功能非常有用.
如果我扔过其中一个按钮,它会在大多数情况下执行单击,或者在某些情况下执行任何操作.
这是我的代码的相关部分:
@Override
public boolean onFling(MotionEvent e1,MotionEvent e2,float veLocityX,float veLocityY) {
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) {
viewFlipper.setInAnimation(slideLeftIn);
viewFlipper.setoutAnimation(slideLeftOut);
viewFlipper.showNext();
return true;
} else if (e2.getX() - e1.getX() > SWIPE_MIN_disTANCE
&& Math.abs(veLocityX) > SWIPE_THRESHOLD_VELociTY) {
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setoutAnimation(slideRightOut);
viewFlipper.showPrevIoUs();
return true;
}
return false;
}
@Override
public boolean onDown(MotionEvent e) {
// Todo Auto-generated method stub
return true;
}
@Override
public void onLongPress(MotionEvent e) {
// Todo Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1,float distanceX,float distanceY) {
// Todo Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// Todo Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// Todo Auto-generated method stub
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return gestureDetector.onTouchEvent(event);
}
return false;
}
尝试任何返回true的组合;返回虚假;我能想到…会感激任何帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。