Recyclerview crashes when deleting the last item. NullPointerException: android.view.ViewGroup $ LayoutParams android.view.View.getLayoutParams ()

I have a recyclerview that fills with an arraylist. When I remove an item from the list, it works fine until the last item is deleted. Below is the code found in my recycliewiew adapter, which removes the item.

public void removeItem(int position) { itemsData.remove(position); notifyItemRemoved(position); } 

The following is the alarm log. The log does not direct me to the specified location in my code. So I'm not sure what causes the problem.

I did some testing and recorded the position. If I add an element to arraylist and notifyItemInserted in recycliewiew, the position of the added element is 0. If I click on the added element, the position will be 0, and if I delete the element, I will delete it at position 0, but it crashed when deleting the element as position 0 .

java.lang.NullPointerException: attempt to call the virtual method 'android.view.ViewGroup $ LayoutParams android.view.View.getLayoutParams ()' to reference the null object on android.support.v7.widget.OrientationHelper $ 2.getDecoratedStart (OrientationHelper.java : 316) in android.support.v7.widget.LinearLayoutManager.findOneVisibleChild (LinearLayoutManager.java:1633) on android.support.v7.widget.LinearLayoutManager.findFirstVisibleChildClosestToStart (LinearLayoutManager3j.java.java file.java .LinearLayoutManager.computeScrollOffset (LinearLayoutManager.java:997) on android.support.v7.widget.LinearLayoutManager.computeVerticalScrollOffset (LinearLayoutManager.java:969) on android.support.v7.widget.OffcsetViewReviewc JavaViewrollVecWell.ReclclerViewReviewcrollViewReviewcavaViewReviewcavaViewReviewcrollView.java:9 android.view.View.canScrollVertically (View.java:12835) in android.support.v4.view.ViewCompatICS.canScrollVertically (ViewCompatICS.java:35) in android.support.v4.view.ViewCompat $ ICSViewCompatImpl.canScrollVertically (ViewCompat.java:1136) in android.support.v4.view.ViewCompat .canScrollVertically (ViewCompat.java:1528) in android.support.v7.widget.RecyclerView $ LayoutManager.onInitializeAccessibilityEvent (RecyclerView.java:6594) in android.support.v7.widget.RecyclerView $ LayoutManager.onInitialjava6565 Accessory ) in the file android.support.v7.widget.LinearLayoutManager.onInitializeAccessibilityEvent (LinearLayoutManager.java:204) in android.support.v7.widget.RecyclerViewAccessibilityEelegate.onInitializeAccessibilityDelegate.eccessate.legacy.legate.legacy.legate.legateelegate.legateelegate.legacy.legateelegate.legacy.legate $ AccessibilityDelegateJellyBeanImpl $ 1.onInitializeAccessibilityEvent (AccessibilityDelegateCompat.java:228) at android.support.v4.view.AccessibilityDelegateCompatJellyBean $ 1. in android.view.View $ AccessibilityDelegate.sendAccessibilityEventUnchecked (View.java:20823) on android.support.v4.view.AccessibilityDelegateCompatIcs.sendAccessibilityEventUnchecked (AccessibilityDelegateCompatIcs.javaeclate_AccessibilityPreview.Accessibility.Complete.Accessibility.Complete.Accessibility.Complete.Accessibility.Complete.Accessibility.Complete.Accessibility.Accessibility.Complete.Accessibility.Complete (AccessibilityDelegateCompat.java:210) at android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked (AccessibilityDelegateCompat.javahaps58) on android.support.v4.view.AccessibilityDelegateCompat $ AccessibilityDelegateJellyBeanImc $ 1. cessibilityEventUnchecked (AccessibilityDelegateCompat.java:255) at android.support.v4.view.AccessibilityDelegateCompatJellyBean $ 1.sendAccessibilityEventUnchecked (AccessibilityDelegateCompatJellyBean.java:82) at android.view.View.sendAccessibilityEplen.Unive.pluccess.plibility.ucview. SendWindowContentChangedAccessibilityEvent.run (ViewRootImpl.java:6934) at android.view.ViewRootImpl $ SendWindowContentChangedAccessibilityEvent.runOrPost (ViewRootImpl.java:6960) on android.view.ViewRootImpl.postSendWindowContent1footChootRootJutJpliutjpChootChtangootjoutpliutjpChangChang.jpg (ViewRootImpl.java:6274) in android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) in android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) in android.view.ViewGroup.notibSubili tyStateChanged (ViewGroup.java:2772) in android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) in android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) in android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java : 2772) in android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) in android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (

Any help is greatly appreciated thanks!

+6
source share
1 answer

Put the check on "not null", and everything should be fine. Something like that:

 public void removeItem(int position) { if(itemsData != null){ itemsData.remove(position); notifyItemRemoved(position); } } 

Hope this helps.

-1
source

Source: https://habr.com/ru/post/987069/


All Articles