Closed elod91 closed 9 years ago
I have a search option in my app and that's why I need to add new data to the adapter. Usually the new data list has less elements, less groups.
Maybe, RecyclerViewExpandableItemManager.release()
method call is missing.
RecyclerViewExpandableItemManager
class uses RecyclerView.OnItemTouchListener
internally and unregister it when the release()
method is called.
FYI: If possible, I recommend you to implement setData()
or sort of method to your adapter instead of re-creating everything.
Sorry, I've implemented already a setData() method and it works. All I needed to do is to change the data list and call the notifyDataSetChanged(). A colleague of mine sad that it won't work this way, so that's why I recreated everything. Then after a few hours of suffering I tried the "traditional" method and it worked!
java.lang.ClassCastException: com.acar.adapters.PoisAdapter$PoiChildViewHolder cannot be cast to com.acar.adapters.PoisAdapter$PoiGroupViewHolder at com.acar.adapters.PoisAdapter.onCheckCanExpandOrCollapseGroup(PoisAdapter.java:29) at com.h6ah4i.android.widget.advrecyclerview.expandable.ExpandableRecyclerViewWrapperAdapter.onTapItem(ExpandableRecyclerViewWrapperAdapter.java:597) at com.h6ah4i.android.widget.advrecyclerview.expandable.RecyclerViewExpandableItemManager.handleActionUpOrCancel(RecyclerViewExpandableItemManager.java:311) at com.h6ah4i.android.widget.advrecyclerview.expandable.RecyclerViewExpandableItemManager.onInterceptTouchEvent(RecyclerViewExpandableItemManager.java:247) at com.h6ah4i.android.widget.advrecyclerview.expandable.RecyclerViewExpandableItemManager$1.onInterceptTouchEvent(RecyclerViewExpandableItemManager.java:120) at android.support.v7.widget.RecyclerView.dispatchOnItemTouchIntercept(RecyclerView.java:1986) at android.support.v7.widget.RecyclerView.onInterceptTouchEvent(RecyclerView.java:2027) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369) at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719) at android.app.Activity.dispatchTouchEvent(Activity.java:2742) at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59) at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330) at android.view.View.dispatchPointerEvent(View.java:8666) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4123) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3989) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3680) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3737) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5807) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.ja
After I have my new data list, I recreate everything like this:
private void reInitList(List poiAndPartnerCategories) {
mLayoutManager = new LinearLayoutManager(this);