futuredapp / infinity

[Deprecated] Infinite paginated RecyclerView scrolling
MIT License
27 stars 8 forks source link

Cannot call notifyItemChanged in a scroll callback #13

Closed bobymicroby closed 7 years ago

bobymicroby commented 7 years ago

Android 7.1.1 , Nexus6P support lib : 25.1.0

Hi guys, I receive a ton of warnings when i start scrolling :


           RecyclerView  W  Cannot call this method in a scroll callback. Scroll callbacks might be run during a measure & layout pass where you cannot change the RecyclerView data. Any meth
                            od call that might change the structure of the RecyclerView or the adapter contents should be postponed to the next frame.
                         W  java.lang.IllegalStateException:
                         W      at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:2526)
                         W      at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onItemRangeChanged(RecyclerView.java:4866)
                         W      at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(RecyclerView.java:11084)
                         W      at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(RecyclerView.java:11075)
                         W      at android.support.v7.widget.RecyclerView$Adapter.notifyItemChanged(RecyclerView.java:6575)
                         W      at com.thefuntasty.infinity.InfinityAdapter.refreshFooter(InfinityAdapter.java:544)
                         W      at com.thefuntasty.infinity.InfinityAdapter.setLoading(InfinityAdapter.java:567)
                         W      at com.thefuntasty.infinity.InfinityAdapter.requestNextPostponed(InfinityAdapter.java:357)
                         W      at com.thefuntasty.infinity.InfinityAdapter.access$700(InfinityAdapter.java:19)
                         W      at com.thefuntasty.infinity.InfinityAdapter$5.onScrolled(InfinityAdapter.java:332)
                         W      at android.support.v7.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:4541)
                         W      at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1698)
                         W      at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2827)
                         W      at android.view.View.dispatchTouchEvent(View.java:10023)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2626)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2307)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
                         W      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
                         W      at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:413)
                         W      at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808)
                         W      at android.app.Activity.dispatchTouchEvent(Activity.java:3061)
                         W      at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
                         W      at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
                         W      at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:375)
                         W      at android.view.View.dispatchPointerEvent(View.java:10243)
                         W      at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4438)
                         W      at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4306)
                         W      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                         W      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
                         W      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
                         W      at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
                         W      at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
                         W      at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
                         W      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                         W      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
                         W      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
                         W      at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
                         W      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                         W      at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6246)
                         W      at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6220)
                         W      at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6181)
                         W      at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6349)
                         W      at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
                         W      at android.os.MessageQueue.nativePollOnce(Native Method)
                         W      at android.os.MessageQueue.next(MessageQueue.java:323)
                         W      at android.os.Looper.loop(Looper.java:136)
                         W      at android.app.ActivityThread.main(ActivityThread.java:6119)
                         W      at java.lang.reflect.Method.invoke(Native Method)
radimvaculik commented 7 years ago

@bobymicroby could you provide a code example, please? So we can reproduce the issue. Thanks!

bobymicroby commented 7 years ago

@radimvaculik No problem. I will write you when ready.

radimvaculik commented 7 years ago

@bobymicroby any progress?

bobymicroby commented 7 years ago

Didn't had any time this week. Will try to do it during the weekend . Cheers

skywall commented 7 years ago

@bobymicroby Not needed anymore, we can reproduce problem. Thanks.