1. 程式人生 > >photoview與drawerlayout滑動衝突-ArrayIndexOutOfBounds

photoview與drawerlayout滑動衝突-ArrayIndexOutOfBounds

在做廣外小助手的時候,為了提供校歷檢視功能我在其中一個fragment中放置了一個photoview控制元件,因為校歷的圖片比較大而手機螢幕沒有那麼大,所以要使用這個支援拉伸縮放的控制元件,但是在執行的時候,當我放大照片或者縮小圖片時,程式會因異常而停止。檢視錯誤日誌顯示 java.lang.ArrayIndexOutOfBounds,經過查詢資料,我重寫了drawlayout的onInterceptTouchEvent方法,詳細程式碼如下

public class ExtendLayout extends DrawerLayout {
    public ExtendLayout(Context context) {
        super(context);
    }

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

    public ExtendLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        try {
            return super.onInterceptTouchEvent(ev);
        }
        catch (IllegalArgumentException e){
            e.printStackTrace();
            return false;
        }
        catch (ArrayIndexOutOfBoundsException e){
            e.printStackTrace();
            Log.e("CCC","攔截了");
            return false;
        }
    }
}
然後使用這個ExtendLayout代替原來使用的DrawerLayout,重新執行程式,在拉伸或縮放圖片中,成功列印了“攔截了”這行日誌,說明滑動事件的異常被ExtendLayout捕獲了並且不攔截該事件,事件下發給子view,也就是photoview,因此,異常解決。

相關推薦

photoviewdrawerlayout滑動衝突-ArrayIndexOutOfBounds

在做廣外小助手的時候,為了提供校歷檢視功能我在其中一個fragment中放置了一個photoview控制元件,因為校歷的圖片比較大而手機螢幕沒有那麼大,所以要使用這個支援拉伸縮放的控制元件,但是在執行

Android PtrFrameLayout RecyclerView滑動衝突解決方法

原文地址:https://blog.csdn.net/Simon_Crystin/article/details/80926795   1.背景 2.主要程式碼邏輯 2.1 父View程式碼(PtrFrameLayout) 2.2 子View關鍵程式碼(RecyclerView)

NestedScrollViewViewpager滑動衝突

最近實現需求Viewpager實現載入視訊和圖片實現輪播,所實現的介面需要巢狀NestedScrollView,所出現的問題就是:Viewpager可以實現自動輪播,但是不能實現手動輪播,這是我很鬱悶,一想肯定是滑動衝突了,網上也找了很多的解決辦法。後邊得到 NestedScrollView

解決SwipeRefreshLayoutScrollView滑動衝突

在頁面為了相容小螢幕裝置我們需要巢狀一個ScrollView來讓我們的佈局可以滑動,此時恰好外層使用了SwipeRefreshLayout那滑動衝突就來了,下面給出解決辦法 1.方法一:使用NestedScrollView替換ScrollView <android.

webview輪播圖Android滑動衝突的解決辦法

在Android中我們經常需要左右滑動,其中內嵌的web頁面也有滑動動作。輪播圖舉例:需要左右翻頁時,會觸發Android中的ViewPager導致翻頁到另一個頁面輪播圖翻頁翻不動,或失效。但是由於安卓是父,而Web是子。在Web中不論你做什麼處理,都管不了父視窗的事情,所以

通過事件分發機制處理ListViewScrollView滑動衝突

ListView與ScrollView滑動衝突處理,是一個很經典的案例,網路上有各種各樣的解決方案,比如使用LinearLayout取代ListView、重寫ListView的onMeasure方法都能很好的解決這個問題。 但是本次採用的是通過重寫ListView的dispatchTouchEv

Android6.0 ScrollViewRecyclerView滑動衝突的問題

前記:我有個這樣的需求,在一個LinearLayout中Vertical展示倆個不同的recycleview,但是要求倆個recycleview都全部展示出來; 在Android5.0的系統中,我的做法是,只要在LinearLayout外面加一個ScrollV

android-Ultra-Pull-To-Refresh重新整理框架viewpager滑動衝突解決方案

文章概述: 問題描述: liaohuqiu 開源的 android-Ultra-Pull-To-Refresh 下拉重新整理框架,在使用時,會經常遇到巢狀banner的使用場景,即:子ViewGroup巢狀ViewPager使用,例如: <c

完美解決SwipeRefreshLayoutRecyclerView滑動衝突問題

直接上程式碼 //解決swipelayout與Recyclerview的衝突 recyclerView.addOnScrollListener(new Recycle

webviewswiperefreshlayout滑動衝突

v4包中的SwipeRefreshLayout包裹webview時,如果webview載入的html頁有固定表頭和上下滾動的表格,會造成滑動衝突,下滑會一直呼叫重新整理而不是html頁的資料滾動,解決方法是重寫webview。 public class WebView4Sc

關於多個ListViewScrollView滑動衝突的一個簡單處理方法

這個是我的第一個博文。希望可以幫到一些開發者!!!廢話不多說直接上程式碼主佈局<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android

解決ListViewSwipeRefreshLayout滑動衝突的問題

這個問題呢,在我初次接觸SwipeRefreshLayout的時候也遇到過,後來查了相關資料和網路資訊,得以解決,今天再次想到了這個問題,就記下來做個備忘吧。 首先說一下使用方式:SwipeRefreshLayout作為官方下拉重新整理控制元件,要將 List

解決HorizontalScrollViewSeekBar滑動衝突的問題.

seekbar在一個Activity中使用,如果有horizontalScrollview存在的時候,seekbar的滑動便不靈敏了.為了解決這個問題,需要新增seekbar的onTouchListener事件來不讓父view去攔截子view的事件getParent().r

Scrollview 巢狀listView recycleView 滑動衝突的解決

本來我們用recycview代替了listview之後就很少會遇到scrollview了但是產品需求總是在不斷的更新。在時間與技術的探索之下,還是會有一部分兄弟會選擇這樣的佈局,下面我就來說說使用之後遇到的一些坑的解決方案。 1 scrollview 簽到listview

android ViewPagerScrollView滑動衝突解決

內部解決法: 重寫ViewPager的dispatchTouchEvent方法判斷滑動傾向 import android.con

android_NestedScrollViewlistView、recyclerView滑動衝突

效果圖 與recyclerView gradle: compile 'com.android.support:design:26.0.0-alpha1'//材料設計語言 compile 'com.jakewharton:butterknife:8.5.1'//butterknife

ScrollViewviewpager滑動事件衝突,點選事情衝突解決方案

在產品適配的時候我加了ScrollView,但是產品提出了一個向上輪播需求 首先把豎直向上的viewpager粘出來: package com.cfiigroup.zhehui.hepaidai.view; import android.view.MotionEvent; impo

Android:禁止viewpager左右滑動,去除viewpager切換時動畫,解決viewpager百度地圖滑動衝突

Android自定義viewpager,禁止viewpager左右滑動,去除viewpager切換時動畫,解決viewpager與百度地圖滑動衝突 public class CustomViewPager extends ViewPager { private boolean e

Android NestedScrolling解決滑動衝突問題(2) - fling問題NestedScroll++

滑動的處理 在前一篇文章 Android NestedScrolling解決滑動衝突問題(1) - 相關介面 中,我們分析瞭解決滑動衝突問題的 NestedScroll 介面,也給出瞭解決此類問題的一般性方案: NestedScrollingChild側 NestedScro

ScrollViewListView(ExpandableListView)的滑動衝突解決方法

在Android開發中,如果外層使用ScrollView巢狀ListView(ExpandableListView),以下統一稱為ListView,會導致ListView的顯示高度變窄,甚至不能實現螢幕外內容的括展,那麼滑動衝突就出現了。 解決思路: 思路一: 在XML中將高度固定