You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 22, 2023. It is now read-only.
I've experienced various issues in the sample app, after the above commit, which is on the development branch as of 26 Nov 2020.
I put them all here in the same issue, because they might share the same root cause.
When switching tabs he app will sometimes crash with the below stacktrace. Unfortunately I haven't found a way to reliably trigger this, but it does occur frequently.
Display a tab, switch to another tab and then go back to the original tab, will stop the fast scroller handle from moving when the list is scrolled. The fast scroller handle still works. When using the Basic tab, this means that the fast scroller will not become visible when the list is scrolled.
2021-02-05 22:50:22.986 26158-26158/com.qtalk.sample D/RVFastScroller: Touch Action: 1
2021-02-05 22:50:24.590 26158-26158/com.qtalk.sample D/AndroidRuntime: Shutting down VM
2021-02-05 22:50:24.599 26158-26158/com.qtalk.sample E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.qtalk.sample, PID: 26158
java.lang.IllegalStateException: Observer com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller$adapterDataObserver$1$1@e29f01d was not registered.
at android.database.Observable.unregisterObserver(Observable.java:69)
at androidx.recyclerview.widget.RecyclerView$Adapter.unregisterAdapterDataObserver(RecyclerView.java:7537)
at com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller.detachFastScrollerFromRecyclerView(RecyclerViewFastScroller.kt:964)
at com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller.onDetachedFromWindow(RecyclerViewFastScroller.kt:381)
at android.view.View.dispatchDetachedFromWindow(View.java:17456)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3681)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3673)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3673)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5227)
at android.view.ViewGroup.removeViewAt(ViewGroup.java:5174)
at androidx.recyclerview.widget.RecyclerView$5.removeViewAt(RecyclerView.java:915)
at androidx.recyclerview.widget.ChildHelper.removeViewAt(ChildHelper.java:168)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.removeViewAt(RecyclerView.java:8946)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.removeAndRecycleViewAt(RecyclerView.java:9217)
at androidx.recyclerview.widget.LinearLayoutManager.recycleChildren(LinearLayoutManager.java:1437)
at androidx.recyclerview.widget.LinearLayoutManager.recycleViewsFromEnd(LinearLayoutManager.java:1531)
at androidx.recyclerview.widget.LinearLayoutManager.recycleByLayoutState(LinearLayoutManager.java:1556)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1582)
at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1395)
at androidx.recyclerview.widget.LinearLayoutManager.scrollHorizontallyBy(LinearLayoutManager.java:1124)
at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:1969)
at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5476)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1029)
at android.view.Choreographer.doCallbacks(Choreographer.java:841)
at android.view.Choreographer.doFrame(Choreographer.java:769)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1015)
at android.os.Handler.handleCallback(Handler.java:793)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6698)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
The text was updated successfully, but these errors were encountered:
I have the same problem, and found out that rewriting the function registerDataObserver() of the library as follows did seem to circumvent the crash. But I'm not sure this tackles the root of the issue.
The problem seems to be caused because the observer is registered more than once before being detached. It is first registered in initImpl() and then, every time you click and scroll down using the scrollbar, the observer is registered again at line 418.
@shahsurajk would you happen to have any insight on the issue?
I've experienced various issues in the sample app, after the above commit, which is on the development branch as of 26 Nov 2020.
I put them all here in the same issue, because they might share the same root cause.
2021-02-05 22:50:22.986 26158-26158/com.qtalk.sample D/RVFastScroller: Touch Action: 1
2021-02-05 22:50:24.590 26158-26158/com.qtalk.sample D/AndroidRuntime: Shutting down VM
2021-02-05 22:50:24.599 26158-26158/com.qtalk.sample E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.qtalk.sample, PID: 26158
java.lang.IllegalStateException: Observer com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller$adapterDataObserver$1$1@e29f01d was not registered.
at android.database.Observable.unregisterObserver(Observable.java:69)
at androidx.recyclerview.widget.RecyclerView$Adapter.unregisterAdapterDataObserver(RecyclerView.java:7537)
at com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller.detachFastScrollerFromRecyclerView(RecyclerViewFastScroller.kt:964)
at com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller.onDetachedFromWindow(RecyclerViewFastScroller.kt:381)
at android.view.View.dispatchDetachedFromWindow(View.java:17456)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3681)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3673)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3673)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5227)
at android.view.ViewGroup.removeViewAt(ViewGroup.java:5174)
at androidx.recyclerview.widget.RecyclerView$5.removeViewAt(RecyclerView.java:915)
at androidx.recyclerview.widget.ChildHelper.removeViewAt(ChildHelper.java:168)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.removeViewAt(RecyclerView.java:8946)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.removeAndRecycleViewAt(RecyclerView.java:9217)
at androidx.recyclerview.widget.LinearLayoutManager.recycleChildren(LinearLayoutManager.java:1437)
at androidx.recyclerview.widget.LinearLayoutManager.recycleViewsFromEnd(LinearLayoutManager.java:1531)
at androidx.recyclerview.widget.LinearLayoutManager.recycleByLayoutState(LinearLayoutManager.java:1556)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1582)
at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1395)
at androidx.recyclerview.widget.LinearLayoutManager.scrollHorizontallyBy(LinearLayoutManager.java:1124)
at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:1969)
at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5476)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1029)
at android.view.Choreographer.doCallbacks(Choreographer.java:841)
at android.view.Choreographer.doFrame(Choreographer.java:769)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1015)
at android.os.Handler.handleCallback(Handler.java:793)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6698)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
The text was updated successfully, but these errors were encountered: