viewpager报错异常java.lang.IllegalArgumentException: pointerIndex out of range的解决方案

最近遇到的viewpager 里面的关于多点触控时候报的异常崩溃错误
报错信息简洁显示如下:
java.lang.IllegalArgumentException: pointerIndex out of range
at android.view.MotionEvent.nativeGetAxisValue(Native Method)
at android.view.MotionEvent.getX(MotionEvent.java:1981)
............
等等这些

不知道怎么情况 以为是自己引用的控件的本身的bug,通过度娘知道,可能是系统本身的错误
所幸找到了解决方法如下:

自定义控件,重写控件的方法,捕获异常,完美解决

public class MyVerticalViewPager extends VerticalViewPager {

   public MyVerticalViewPager(Context context) {
       super(context);
   }

   public MyVerticalViewPager(Context context, AttributeSet attrs) {
       super(context, attrs);
   }

   @Override
   public boolean onTouchEvent(MotionEvent ev) {
       try {
           return super.onTouchEvent(ev);
       } catch (IllegalArgumentException ex) {
           ex.printStackTrace();
       }
       return false;
   }

   @Override
   public boolean onInterceptTouchEvent(MotionEvent ev) {
       try {
           return super.onInterceptTouchEvent(ev);
       } catch (IllegalArgumentException ex) {
           ex.printStackTrace();
       }
       return false;
   }
}

以上方法完美解决,感谢分享解决方法的大神.
参考链接:https://blog.csdn.net/nnmmbb/article/details/28419779

希望能对大家有所帮助,欢迎大家一起讨论交流.


3952735fe4a07d74f844ab84d36c43b0_r.jpg

你可能感兴趣的:(viewpager报错异常java.lang.IllegalArgumentException: pointerIndex out of range的解决方案)