Я пишу код для обработки события касания на основе предложенного здесь. Я использую ViewPager как ViewGroup и ListView (я знаю #thisbad) как дочерний вид фрагмента.
Это то, чего я хотел достичь:
- Обнаружение события мультитач в дочернем представлении
- затем передайте управление касанием родительскому
но при передаче события прослушивателя из представления Child View в Parent это приводит к следующей ошибке:
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)
Я проверил с некоторыми другими сообщениями те же проблемы как и здесь, но все они используют индексирование указателя, чтобы сделать что-то, но в моем случае я просто передаю управление родительскому (ViewPager) представлению.
Анализ: Здесь я проверил использование FrameLayout вместо Listview в Child Fragment. и он работает без какой-либо проблемы... но не с ListView.
Информация об устройстве: OS V4.4.4 S5.
Любое предложение!