etsy/AndroidStaggeredGrid

The content of the adapter has changed but ExtendableListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread

slm opened this issue · 5 comments

slm commented

How can ı fix it guys ?

     java.lang.IllegalStateException: The content of the adapter has changed but ExtendableListView    did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ExtendableListView(2131558871, class com.etsy.android.grid.StaggeredGridView) with Adapter(class com.etsy.android.grid.HeaderViewListAdapter)]
   at com.etsy.android.grid.ExtendableListView.layoutChildren(ExtendableListView.java:559)
   at com.etsy.android.grid.StaggeredGridView.layoutChildren(StaggeredGridView.java:358)
   at com.etsy.android.grid.ExtendableListView.onLayout(ExtendableListView.java:513)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:450)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:450)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:450)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:450)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:450)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1160)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:450)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:493)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:450)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888)
   at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1742)
   at android.widget.LinearLayout.onLayout(LinearLayout.java:1651)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at com.jeremyfeinstein.slidingmenu.lib.CustomViewAbove.onLayout(CustomViewAbove.java:476)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1160)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:450)
   at android.view.View.layout(View.java:15125)
   at android.view.ViewGroup.layout(ViewGroup.java:4862)
   at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2323)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2029)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1192)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6231)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
   at android.view.Choreographer.doCallbacks(Choreographer.java:591)
   at android.view.Choreographer.doFrame(Choreographer.java:560)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
   at android.os.Handler.handleCallback(Handler.java:808)
   at android.os.Handler.dispatchMessage(Handler.java:103)
   at android.os.Looper.loop(Looper.java:193)
   at android.app.ActivityThread.main(ActivityThread.java:5292)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
   at dalvik.system.NativeStart.main(NativeStart.java)

I think it's related to
ExtendableListView, line: 2193 (mItemCount = getAdapter().getCount())
that should be replaced with (mItemCount = ExtendableListView.this.mAdapter.getCount())
I try it. it really works

slm commented

@moshtagh thanks 👍

hello @slmyldz and @moshtagh, I have also the same issue. The scenario is, Change the orientation while loading the image. I tried @moshtagh answer, that is not suitable for me. I need your suggestion.

same issue.. solution please?

slm commented

@avijain7143 @udayatom I can't remember how I solve this. But you should use RecyclerView with StaggeredGridLayoutManager instead of GridView. And this library deprecated at 09-2015.