emilsjolander / StickyListHeaders

An android library for section headers that stick to the top
Apache License 2.0
5.51k stars 1.52k forks source link

Null pointer exception when recycler view scrolled after adding Header items dynamically #476

Open GaganBhatia opened 7 years ago

GaganBhatia commented 7 years ago

I have created 3 DataBean class out of which 1 is sticky At starting it's work fine, but after appending the data to the list it get crashed while scorlling.

It says "Databean is null", but I don't know how it is coming null. As while creating the data for the list I creat "new" data bean class.

When i checked for same in Sample code , and added new users from Add Sticky View option from menu (changed the added users to be stickyheader in the code setting user.setShouldSticky(true); for all) the app crashed on scroll down.Please find the Log for the same.

Please look into the issue. Thanks.

Log for 3 Databean model with 1 sticky header : - java.lang.NullPointerException: Attempt to invoke virtual method 'int tellh.com.stickyheaderview_rv.adapter.DataBean.getItemLayoutId(tellh.com.stickyheaderview_rv.adapter.StickyHeaderViewAdapter)' on a null object reference at tellh.com.stickyheaderview_rv.StickyHeaderView.updateHeaderView(StickyHeaderView.java:138) at tellh.com.stickyheaderview_rv.StickyHeaderView.access$800(StickyHeaderView.java:22) at tellh.com.stickyheaderview_rv.StickyHeaderView$1.onScrolled(StickyHeaderView.java:112) at android.support.v7.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:4618) at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1723) at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2883) at android.view.View.dispatchTouchEvent(View.java:8476) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2092) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) 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:2752) at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71) at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330) at android.view.View.dispatchPointerEvent(View.java:8671) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4193) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4059) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3657) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3623) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3740) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3631) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3797) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3657) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3623) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3631) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5912) at android.view.ViewRootImpl.doProces


Log for Sample Code -----> java.lang.NullPointerException: Attempt to invoke virtual method 'int tellh.com.stickyheaderview_rv.adapter.DataBean.getItemLayoutId(tellh.com.stickyheaderview_rv.adapter.StickyHeaderViewAdapter)' on a null object reference at tellh.com.stickyheaderview_rv.StickyHeaderView.updateHeaderView(StickyHeaderView.java:138) at tellh.com.stickyheaderview_rv.StickyHeaderView.access$800(StickyHeaderView.java:22) at tellh.com.stickyheaderview_rv.StickyHeaderView$1.onScrolled(StickyHeaderView.java:112) at android.support.v7.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:4541) at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1698) at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2827) at android.view.View.dispatchTouchEvent(View.java:8476) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2092) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407) 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:2752) at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330) at android.view.View.dispatchPointerEvent(View.java:8671) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4193) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4059) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3657) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3623) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3740) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3631) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3797) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3657) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3623) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3631) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5912) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5851) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5822) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6002) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:192) at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) at and

badonla65 commented 6 years ago

I am testing on sdk 21. I don't perfect. I want help Eric.

badonla65 commented 6 years ago

I am testing on sdk 21. I don't perfect. I want help.