ksoichiro / Android-ObservableScrollView

Android library to observe scroll events on scrollable views.
http://ksoichiro.github.io/Android-ObservableScrollView/
Apache License 2.0
9.66k stars 2.06k forks source link

ClassCastException on navigating #174

Closed viniciuscb closed 9 years ago

viniciuscb commented 9 years ago

I had the following error in using observableScrollView:

(Using version 1.5.2). Error happens when user enters and exits the fragment listview in a fast way.

     java.lang.ClassCastException: android.view.ViewRootImpl cannot be cast to android.view.View
            at com.github.ksoichiro.android.observablescrollview.ObservableListView.onTouchEvent(ObservableListView.java:168)
            at android.view.View.dispatchTouchEvent(View.java:7713)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2210)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2329)
            at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1568)
            at android.app.Activity.dispatchTouchEvent(Activity.java:2458)
            at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59)
            at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2277)
            at android.view.View.dispatchPointerEvent(View.java:7893)
            at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3950)
            at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3829)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3395)
            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3445)
            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3414)
            at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3521)
            at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3422)
            at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3578)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3395)
            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3445)
            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3414)
            at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3422)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3395)
            at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5535)
            at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5515)
            at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5486)
            at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5615)
            at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
            at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
            at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)
            at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl
ksoichiro commented 9 years ago

It seems to be fixed by pull request "Swiping bug correction #185". @viniciuscb Thank you for reporting this and fixing it.