StickyHeaders icon indicating copy to clipboard operation
StickyHeaders copied to clipboard

notifySectionItemChanged() crashes the app

Open rex50 opened this issue 4 years ago • 0 comments

For the below code snippet, whenever onFinish is called and I try to notify adapter I'm getting exception mentioned below the code snippet.

CODE SNIPPET in Adapter

itemViewHolder.countDownTimer = new CountDownTimer(leftTime, 1000) {
    @Override
    public void onTick(long > millisUntilFinished) {
		//TODO
    }
    @Override
    public void onFinish() {
        viewHolder.setIsRecyclable(true);
        if(!fragment.isRecyclerComputingOrScrolling())
            notifySectionItemChanged(sectionIndex,itemIndex);
        else
            Log.e(TAG, "onFinish: recycler view is computing or scrolling");
    }
}.start();

EXCEPTION for above code snippet

java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.recyclerview.widget.RecyclerView{837b453 VFED..... ......I. 0,0-720,1006 #7f09035f app:id/newsFeedRecyclerView}, adapter:com.wonderslate.wonderpublish.Views.Adapters.ChapterAllElementsAdapter@3db4190, layout:org.zakariya.stickyheaders.StickyHeaderLayoutManager@7b4fa89, context:com.wonderslate.wonderpublish.Views.Activity.BookContentActivity@e0976ee
        at androidx.recyclerview.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:2880)
        at androidx.recyclerview.widget.RecyclerView$RecyclerViewDataObserver.onItemRangeChanged(RecyclerView.java:5292)
        at androidx.recyclerview.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(RecyclerView.java:12012)
        at androidx.recyclerview.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(RecyclerView.java:12002)
        at androidx.recyclerview.widget.RecyclerView$Adapter.notifyItemChanged(RecyclerView.java:7086)
        at org.zakariya.stickyheaders.SectioningAdapter.notifySectionItemChanged(SectioningAdapter.java:912)
        at com.wonderslate.wonderpublish.Views.Adapters.ChapterAllElementsAdapter$2.onFinish(ChapterAllElementsAdapter.java:395)
        at android.os.CountDownTimer.start(CountDownTimer.java:89)
        at com.wonderslate.wonderpublish.Views.Adapters.ChapterAllElementsAdapter.onBindItemViewHolder(ChapterAllElementsAdapter.java:399)
        at org.zakariya.stickyheaders.SectioningAdapter.onBindViewHolder(SectioningAdapter.java:1336)
        at org.zakariya.stickyheaders.SectioningAdapter.onBindViewHolder(SectioningAdapter.java:30)
        at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6781)
        at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6823)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5752)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6019)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
        at org.zakariya.stickyheaders.StickyHeaderLayoutManager.onLayoutChildren(StickyHeaderLayoutManager.java:200)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641)
        at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194)
        at android.view.View.layout(View.java:17666)
        at android.view.ViewGroup.layout(ViewGroup.java:5577)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
        at android.view.View.layout(View.java:17666)
        at android.view.ViewGroup.layout(ViewGroup.java:5577)
        at androidx.viewpager.widget.ViewPager.onLayout(ViewPager.java:1775)
        at android.view.View.layout(View.java:17666)
        at android.view.ViewGroup.layout(ViewGroup.java:5577)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
        at android.view.View.layout(View.java:17666)
        at android.view.ViewGroup.layout(ViewGroup.java:5577)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
        at android.view.View.layout(View.java:17666)
        at android.view.ViewGroup.layout(ViewGroup.java:5577)
        at androidx.coordinatorlayout.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1183)
        at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:870)
        at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:889)
        at android.view.View.layout(View.java:17666)
    	at android.

rex50 avatar Mar 11 '20 07:03 rex50