h6ah4i / android-advancedrecyclerview

RecyclerView extension library which provides advanced features. (ex. Google's Inbox app like swiping, Play Music app like drag and drop sorting)
https://advancedrecyclerview.h6ah4i.com/
Apache License 2.0
5.32k stars 860 forks source link

OnClick of Expandable null pointer exception #196

Open nilesh211 opened 8 years ago

nilesh211 commented 8 years ago

02-23 18:01:36.599 16278-16278/ E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NullPointerException at android.support.v7.widget.SimpleItemAnimator.animateChange(SimpleItemAnimator.java:130) at android.support.v7.widget.RecyclerView.animateChange(RecyclerView.java:3062) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2924) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531) at android.widget.LinearLayout.onLayout(LinearLayout.java:1440) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531) at android.widget.LinearLayout.onLayout(LinearLayout.java:1440) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531) at android.widget.LinearLayout.onLayout(LinearLayout.java:1440) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:15221) at android.view.ViewGroup.layout(ViewGroup.java:4793) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2260) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2007) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1249) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6364) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791) at android.view.Choreographer.doCallbacks(Choreographer.java:591) at android.view.Choreographer.doFrame(Choreographer.java:561) at android.view.Choreographer$FrameHandler.handleMessage(Choreographer.java:693) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5455) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) at dalvik.system.NativeStart.main(Native Method)

nilesh211 commented 8 years ago

Following is my build gradle- ` compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.xxx.xxx" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0.10" signingConfig signingConfigs.config }

dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.mcxiaoke.volley:library:1.0.19' compile 'com.googlecode.libphonenumber:libphonenumber:7.0.9' compile 'com.pkmmte.view:circularimageview:1.1' compile 'com.android.support:recyclerview-v7:23.1.1' compile 'com.google.android.gms:play-services:7.3.0' compile 'com.tuenti.smsradar:library:1.0.4' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.melnykov:floatingactionbutton:1.3.0' compile 'com.android.support:cardview-v7:23.1.1' compile 'com.google.maps.android:android-maps-utils:0.4' compile('com.h6ah4i.android.widget.advrecyclerview:advrecyclerview:0.8.6@aar') { transitive = true } compile 'com.commit451:PhotoView:1.2.4' } `

h6ah4i commented 8 years ago

Hi. It looks your adapter does not implement getGroupId() and getChildId() methods properly. These methods need to return unique and stable values. Also, do not forget calling setHasStableIds(true) in the constructor of your adapter.


nilesh211 commented 8 years ago

Thanks .. Appreciate your response... In my Adapter setHasStableIds(true) was set, and i have implemented getGroupId() and getChildID()

@Override public long getGroupId(int groupPosition) { return mProvider.getGroupItem(groupPosition).getGroupId(); }

@Override
public long getChildId(int groupPosition, int childPosition) {
    return mProvider.getChildItem(groupPosition, childPosition).getChildId();
}

but still it's crashing. It is working for everything, except a case where 6 child items are there.