balysv / material-ripple

Android L Ripple effect wrapper for Views
Apache License 2.0
2.36k stars 479 forks source link

Null pointer exception on scrolling listview #52

Open BehnamMaboodi opened 9 years ago

BehnamMaboodi commented 9 years ago

When i click on ripple view and then scroll it fast enough to exit from listview layout (while ripple animation is already running) it threw a null pointer exception. This only happens if mrl_rippleDelayClick set to true.

 FATAL EXCEPTION: main

java.lang.NullPointerException
        at android.widget.AdapterView.getPositionForView(AdapterView.java:598)
        at com.balysv.materialripple.MaterialRippleLayout$PerformClickEvent.clickAdapterView(MaterialRippleLayout.java:653)
        at com.balysv.materialripple.MaterialRippleLayout$PerformClickEvent.run(MaterialRippleLayout.java:645)
        at com.balysv.materialripple.MaterialRippleLayout$3.onAnimationEnd(MaterialRippleLayout.java:336)
        at android.animation.AnimatorSet$AnimatorSetListener.onAnimationEnd(AnimatorSet.java:818)
        at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1056)
        at android.animation.ValueAnimator.access$400(ValueAnimator.java:50)
        at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:644)
        at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:660)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
        at android.view.Choreographer.doCallbacks(Choreographer.java:574)
        at android.view.Choreographer.doFrame(Choreographer.java:543)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5021)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
        at dalvik.system.NativeStart.main(Native Method)

EDIT: when i set mrl_rippleInAdapter to false and mrl_rippleDelayClick to true , problem simply solve even i use ripple in listview and adapter. i expected to see more problem when set mrl_rippleInAdapter to false since i'm using it inside adapter , can you please explain what mrl_rippleInAdapter exactly doing and what will happen if it set to false?

ngheungyu commented 8 years ago

Similar crash when mri_rippleInAdapter is true, it happens sometimes in HTC One_M8

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Object.equals(java.lang.Object)' on a null object reference
       at android.widget.AdapterView.getPositionForView(AdapterView.java:602)
       at com.balysv.materialripple.MaterialRippleLayout$PerformClickEvent.clickAdapterView(MaterialRippleLayout.java:653)
       at com.balysv.materialripple.MaterialRippleLayout$PerformClickEvent.run(MaterialRippleLayout.java:645)
       at com.balysv.materialripple.MaterialRippleLayout$3.onAnimationEnd(MaterialRippleLayout.java:336)
       at android.animation.AnimatorSet$AnimatorSetListener.onAnimationEnd(AnimatorSet.java:829)
       at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1089)
       at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:666)
       at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:682)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:792)
       at android.view.Choreographer.doCallbacks(Choreographer.java:596)
       at android.view.Choreographer.doFrame(Choreographer.java:556)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:778)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:950
       at android.os.Looper.loop(Looper.java:155)
       at android.app.ActivityThread.main(ActivityThread.java:5696)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
```69814)