ViewPager出现pointerIndex out of range

Android  代码片段  2022年5月12日 am8:08发布3年前 (2022)更新 91es.com站长
129 0 0

前言

ViewPager展示图片时,对图片操作时出现如下异常

AndroidRuntime: FATAL EXCEPTION: main
AndroidRuntime: Process: com.biumall.image, PID: 17729
AndroidRuntime: java.lang.IllegalArgumentException: pointerIndex out of range
AndroidRuntime:        at android.view.MotionEvent.nativeGetAxisValue(Native Method)
AndroidRuntime:        at android.view.MotionEvent.getX(MotionEvent.java:2205)
AndroidRuntime:        at androidx.viewpager.widget.ViewPager.onInterceptTouchEvent(ViewPager.java:2072)
AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2575)
AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2721)
AndroidRuntime:        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
AndroidRuntime:        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2721)

这里简单记录一下,多谢

正文

网上有多种方式,比如方式一改源码,方式二自定ViewPager,然后onInterceptTouchEvent()处进行捕获异常。

本文采用的是第二种方式,对ViewPager进行捕获处理,如下:

public class ImageViewPager extends ViewPager {

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

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

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        try {
            return super.onInterceptTouchEvent(ev);
        } catch (IllegalArgumentException | ArrayIndexOutOfBoundsException e) {
            return false;
        }
    }
}

参考文章

  1. java.lang.IllegalArgumentException: pointerIndex out of range
  2. 图片缩放时java.lang.IllegalArgumentException: pointerIndex out of range解决方案
  3. It's the android ViewPager's bug

 历史上的今天

  1. 2023: TextView走马灯重复走问题(0条评论)
  2. 2021: code 4874 SQLITE_IOERR_SHMSIZE(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

修改logcat缓存大小

前言Android机器在打印logcat时,偶然由于日志输出过大,会出现如下问题adb logcat read: unexpected EOF!然后被强制性退出了打印。解决的方法有两种,一种是使用adb临时修改,断电就恢复,一种是代码中修改,永久性存在。正文永久修改logcat缓存...

SharedPreferences数据存储介绍

前言Android中的SharedPreferences经常使用,这里就对着存储的数据类型进行简单的记录,方便自己回顾。正文进入SharedPreferences.java看一下主要的方法。写入方法常用的写入数据的方法如下Editor putStringSet(String key, ...

AudioTrack简单简介之四:wav去掉文件头之解决爆音

其实这个是我自己对WAV头文件没有理解对,应该早就解决了的。看图WAV文件头信息由大小44个字节的数据组成:4字节数据,内容为“RIFF”,表示资源交换文件标识4字节数据,内容为一个整数,表示从下个地址开始到文件尾的总字节数4字节数据,内容为“WAVE”,表示WAV文件标识4字节数...

adb shell 命令启动带参数的Activity

前言之前简单整理过《adb命令启动service、Activity和发送Broadcast》,但使用adb启动Activity带参数的没有整理。因此这次想起,记录于此,方便自己查阅。好记性不如烂笔头正文本文主要是整理一下常用的使用adb shell启动带参数的Activity。不带参数启...

MediaMetadataRetriever解析媒体文件元数据

前言记录一下,一般获取视频、音频等媒体文件的元数据信息是使用MediaMetadataRetriever这个类。正文直接上代码。MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();//设...

洛夫:石榴树

假若把你的诺言刻在石榴树上枝桠上悬垂着的就显得更沉重了 我仰卧在树下,星子仰卧在叶丛中每一株树属于我,我在每一株树中它们存在,爱便不会把我遗弃 哦!石榴已成熟,这动人的炸裂每一颗都闪烁着光,闪烁着你的名字