Android多點(diǎn)觸控時出現(xiàn)pointerIndex out of range 的錯誤分析

Android多點(diǎn)觸控時出現(xiàn)pointerIndex out of range 的錯誤分析

關(guān)于多點(diǎn)觸控時出現(xiàn)pointerIndex out of range這個問題在網(wǎng)上查了好多資料,有以下幾種情況:

  • 1.Android自身的問題,需要重新編譯代碼:這個沒有驗(yàn)證過弃锐;

  • 2.將返回結(jié)果改為return false; :這是一個老外寫的解決方法,本來以為能解決問題蒙兰,結(jié)果....呵呵了扇住,連單點(diǎn)的拖動都不能用了-.-!!

  • 3.沒有處理異常:IllegalArgumentException

這個靠點(diǎn)譜迈窟,因?yàn)榭刂婆_確實(shí)也報(bào)了這個錯誤,但一般文章都只貼了try{}catch代碼挎塌,沒寫為什么徘六,試了好多次,“一拖動”圖片沒了榴都!

下面是具體的報(bào)錯日志:

 E/CrashReport: java.lang.IllegalArgumentException: pointerIndex out of range
        at android.view.MotionEvent.nativeGetAxisValue(Native Method)
        at android.view.MotionEvent.getX(MotionEvent.java:2080)
        at androidx.viewpager.widget.ViewPager.onInterceptTouchEvent(ViewPager.java:2072)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2120)

這個問題通過重寫viewpager 然后try()catch onInterceptTouchEvent()的內(nèi)容就可以解決

問題分析

這個問題的這個準(zhǔn)確的位置是在event.getX(int)和event.getY(int)中會報(bào)錯待锈,因?yàn)槟愕挠|控點(diǎn)(那個int參數(shù))可能越界了!我的問題是在兩點(diǎn)觸控后嘴高,有一個手指抬起的時候出現(xiàn)的竿音,發(fā)現(xiàn)問題了沒有!K┩浴4核病!當(dāng)兩點(diǎn)觸控后抬起一個手指的時候只有一個觸控點(diǎn)了莹汤,通過event.getX(1)的時候就越界了快鱼!所以只是try{}catch{}是可以解決問題,但是沒解決根本問題的颠印。
這個問題的根本在于判斷動作的時候可能沒有做好case:MotionEvent.ACTION_POINTER_UP這個動作的處理纲岭,或沒有調(diào)用super.onInterceptTouchEvent導(dǎo)致沒有對pointerIndex 進(jìn)行重新賦值。這個動作是在多點(diǎn)觸控后线罕,抬起部分手指(還有手指在屏幕上)的時候觸發(fā)的止潮。

問題解決

1.處理好case:MotionEvent.ACTION_POINTER_UP的操作

2.調(diào)用 super.onInterceptTouchEvent();更新poinerIndex狀態(tài)

3.重寫報(bào)錯的viewGroup 并try{}catch會出錯的onIntercepterTouchevent()方法

  @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        try {
            return super.onInterceptTouchEvent(ev);
        } catch (IllegalArgumentException ex) {
            ex.printStackTrace();
        }
        return false;
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市钞楼,隨后出現(xiàn)的幾起案子喇闸,更是在濱河造成了極大的恐慌,老刑警劉巖询件,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燃乍,死亡現(xiàn)場離奇詭異,居然都是意外死亡宛琅,警方通過查閱死者的電腦和手機(jī)刻蟹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘿辟,“玉大人舆瘪,你說我怎么就攤上這事『炻祝” “怎么了英古?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長昙读。 經(jīng)常有香客問我召调,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任某残,我火速辦了婚禮国撵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘玻墅。我一直安慰自己介牙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布澳厢。 她就那樣靜靜地躺著环础,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剩拢。 梳的紋絲不亂的頭發(fā)上线得,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音徐伐,去河邊找鬼贯钩。 笑死,一個胖子當(dāng)著我的面吹牛办素,可吹牛的內(nèi)容都是我干的角雷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼性穿,長吁一口氣:“原來是場噩夢啊……” “哼勺三!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起需曾,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤吗坚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后呆万,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體商源,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年谋减,在試婚紗的時候發(fā)現(xiàn)自己被綠了牡彻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡逃顶,死狀恐怖讨便,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情以政,我是刑警寧澤霸褒,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站盈蛮,受9級特大地震影響废菱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一殊轴、第九天 我趴在偏房一處隱蔽的房頂上張望衰倦。 院中可真熱鬧,春花似錦旁理、人聲如沸樊零。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驻襟。三九已至稠通,卻和暖如春蝇摸,著一層夾襖步出監(jiān)牢的瞬間捺氢,已是汗流浹背鞠绰。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晚缩,地道東北人愈案。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓银萍,卻偏偏與公主長得像拔疚,于是被迫代替她去往敵國和親肥隆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容