我在应用程序中检测到挥动手势时遇到问题.
我的布局由GrIDVIEw,几个TextVIEw和按钮组成.
我实现了OnGestureListener:
public class MyActivity extends Activity implements OnGestureListener{private GestureDetector myGesture ;
然后在OnCreate中:
myGesture = new GestureDetector(this);
和覆盖方法:
@OverrIDepublic boolean ontouchEvent(MotionEvent event){ return myGesture.ontouchEvent(event);}
}
@OverrIDepublic boolean onFling(MotionEvent e1, MotionEvent e2, float veLocityX, float veLocityY) { // Todo auto-generated method stub try { if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) return false; if(e1.getX() - e2.getX() > SWIPE_MIN_disTANCE && Math.abs(veLocityX) > SWIPE_THRESHolD_VELociTY) { //right to left fling } else if (e2.getX() - e1.getX() > SWIPE_MIN_disTANCE && Math.abs(veLocityX) > SWIPE_THRESHolD_VELociTY) { //left to right fling } } catch (Exception e) { // nothing } return false;}
这实际上工作得很好,但是在GrIDVIEw上却不行.无论在GrIDVIEw之外的任何地方执行击退,它都可以工作.在GrIDVIEw上-绝对没有反应.
我真的不知道该怎么办,因此,感谢您的任何事先帮助.
解决方法:
当事件被使用时,您是否在onFling中返回true(如下所示)?
@OverrIDepublic boolean onFling(MotionEvent e1, MotionEvent e2, float veLocityX, float veLocityY) { // Todo auto-generated method stub try { if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) return false; if(e1.getX() - e2.getX() > SWIPE_MIN_disTANCE && Math.abs(veLocityX) > SWIPE_THRESHolD_VELociTY) { //right to left fling } else if (e2.getX() - e1.getX() > SWIPE_MIN_disTANCE && Math.abs(veLocityX) > SWIPE_THRESHolD_VELociTY) { //left to right fling } return true; } catch (Exception e) { // nothing } return false;}
总结 以上是内存溢出为你收集整理的Android-GridView-GestureDetector不起作用全部内容,希望文章能够帮你解决Android-GridView-GestureDetector不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)