手势在ViewPager上的应用:OnFling MotionEvent e1 == null 的问题解决

来源:互联网 发布:中国援助朝鲜 知乎 编辑:程序博客网 时间:2024/06/05 16:12

1. 网络上查找问题答案是:

定义一个MotionEvent对象,在ondown里面赋值
   private MotionEvent mLastOnDownEvent = null;


       @Override

        public boolean onDown(MotionEvent arg0) {

         mLastOnDownEvent=arg0;
         return false;
       }

     @Override
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
         if(null==e1){
            e1 = mLastOnDownEvent;
              }

          if (e1==null || e2==null){
           return false;

         }
      }

这个解决方案放在我的代码里没有解决问题。

2.   通过打印LOGCAT发现onTouchEvent和onInterceptTouchEvent的调用顺序有一定的特殊性,所以把

gestureDetector.onTouchEvent(event);

分别放到上面两个回调方法里,问题得到解决!


问题的根本原因还不清楚。


0 0
原创粉丝点击