linxin6560 / DetailScrollView

高仿今日头条新闻详情页面
82 stars 14 forks source link

在Webview+RecyclerView的组合中,滑到底部再回到webView会崩溃报错 #7

Open GavinTvs opened 6 years ago

GavinTvs commented 6 years ago

Process: com.example.administrator.detailscrollview, PID: 22993 java.lang.ClassCastException: android.widget.OverScroller cannot be cast to android.support.v4.widget.ScrollerCompat at com.levylin.detailscrollview.views.DetailRecyclerView.getCurrVelocity(DetailRecyclerView.java:114) at com.levylin.detailscrollview.views.helper.ListViewTouchHelper.getCurVelocity(ListViewTouchHelper.java:140) at com.levylin.detailscrollview.views.helper.ListViewTouchHelper.onScrollStateChanged(ListViewTouchHelper.java:124) at com.levylin.detailscrollview.views.DetailRecyclerView$1.onScrollStateChanged(DetailRecyclerView.java:52) at android.support.v7.widget.RecyclerView.dispatchOnScrollStateChanged(RecyclerView.java:4759) at android.support.v7.widget.RecyclerView.setScrollState(RecyclerView.java:1434) at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:4908) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874) at android.view.Choreographer.doCallbacks(Choreographer.java:686) at android.view.Choreographer.doFrame(Choreographer.java:618) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

错误被定位到 DetailRecyclerView$getCurrVelocity ` /**

GavinTvs commented 6 years ago

原因是我把项目中的RecyclerView版本号改为了26.0.2 在26.0.2的Recyclerview中ViewFlinger的mScroller已经改变了类型 befor: ScrollerCompat after:OverScroller 所以反射获取到Recyclerview的属性时就会发生ClassCastException异常 目前我只是把反射的类型更改了,似乎是生效了,不过整体的还有待观察,不过谢谢作者提供的思路和代码,帮我解决了这个比较头疼的问题

GodOfSP commented 5 years ago

应该是方法过时了 像楼上那样改一下就好了