今天做东西的时候,使用了ViewPager嵌套PhotoView查看图片,结果在切换页面之后再进行缩放,抛出java.lang.IllegalArgumentException: pointerIndex out of range的异常,我记得PhotoView源码示例里有关于ViewPager的例子啊,,它们的例子怎么没报错,我的怎么报错了,于是立马查看了他们的例子,顿时就明白问题出在哪里了,PhotoView的例子里面使用了自己写的一个HackyViewPager,HackyViewPager代码如下:
public class HackyViewPager extends ViewPager {
public HackyViewPager(Context context) {
super(context);
}
public HackyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
try {
return super.onInterceptTouchEvent(ev);
} catch (IllegalArgumentException e) {
e.printStackTrace();
return false;
}
}
}
多余的代码我去掉了,然后在xml布局中,把自己supportv4的ViewPager替换成自己HackyViewPager 就好了,如下所示:
<com.ycl.lzcu_news.classes.HackyViewPager
android:id="@+id/vp_pic"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
/>