I am writing an code to handle touch event based on what suggested here. I am using ViewPager as an ViewGroup and ListView(I know #thisbad) as child view of Fragment.
This is what I wanted to achieve:
- Detect multitouch event on child view
- then pass touch control to parent
but While passing listener event from child View to Parent view it giving following error:
E/AndroidRuntime(11414): java.lang.IllegalArgumentException:pointerIndex out of range
E/AndroidRuntime(11414): at android.view.MotionEvent.nativeGetAxisValue(Native Method)
E/AndroidRuntime(11414): at android.view.MotionEvent.getX(MotionEvent.java:1979)
E/AndroidRuntime(11414): at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32)
E/AndroidRuntime(11414): at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:91)
E/AndroidRuntime(11414): at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:219)
E/AndroidRuntime(11414): at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:1971) ..................
E/AndroidRuntime(11414): at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5588)
E/AndroidRuntime(11414): at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5634)
E/AndroidRuntime(11414): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
E/AndroidRuntime(11414): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
E/AndroidRuntime(11414): at android.view.Choreographer.doFrame(Choreographer.java:542)
I checked with some other post have same issue like and here but all they are using Pointer indexing to do somehting but in my case I am just passing control to parent(ViewPager) view now.
Analysis: Here I checked to use FrameLayout instead to Listview in Child Fragment. and it's working without any mentioned issue..but not with ListView.
Device Info: OS V4.4.4 S5.
Any suggestion!