emilsjolander/StickyScrollViewItems

ClassCastException on calling StickyScrollView#smoothScrollBy() in split screen window

Opened this issue · 1 comments

The following exception is thrown on calling StickyScrollView#smoothScrollBy() when the activity containing the StickyScrollView is in split screen mode:

02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: java.lang.ClassCastException: android.view.ViewRootImpl cannot be cast to android.view.View 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.emilsjolander.components.StickyScrollViewItems.StickyScrollView.getTopForViewRelativeOnlyChild(StickyScrollView.java:132) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.emilsjolander.components.StickyScrollViewItems.StickyScrollView.doTheStickyThing(StickyScrollView.java:293) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.emilsjolander.components.StickyScrollViewItems.StickyScrollView.onScrollChanged(StickyScrollView.java:286) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.View.scrollTo(View.java:13433) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.widget.ScrollView.scrollTo(ScrollView.java:1705) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.View.scrollBy(View.java:13448) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.widget.ScrollView.smoothScrollBy(ScrollView.java:1263) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.a.c.d.e.f.g.h(g.java:141) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.a.c.d.e.f.g.i(g.java:178) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.a.c.d.e.f.g.access$000(g.java:19) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.a.c.d.e.f.g$1.onGlobalLayout(g.java:61) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:912) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2139) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1287) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6967) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:952) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:752) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:671) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:751) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.os.Looper.loop(Looper.java:154) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6124) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:926) 02-06 15:28:09.763 10785-10785/com.a.b E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:788)

Unable to create a branch and create a pull request. Attaching a patch for fix. Had to put it into a zip file because attaching .patch files is not supported.

fix-for-ClassCastException.zip