StickyHeaders
StickyHeaders copied to clipboard
notifySectionItemChanged() crashes the app
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.