Android RecyclerView滑动出现空指针异常

ViewPager里面是Fragment然后Fragment里面是RecyclerV但是可以正常显示列表,一旦滑动就会出现异常,这个是垂直方向的
然后里面还嵌套了一个水平方向的网格式RecyclerView没有显示出来!TIME=1429828195000
FINGERPRINT=Xiaomi/cancro_wc_lte/cancro:4.4.4/KTU84P/5.4.24:user/release-keys
HARDWARE=qcom
UNKNOWN=unknown
RADIO=unknown
BOARD=MSM8974
versionCode=1
PRODUCT=cancro_wc_lte
versionName=1.0
DISPLAY=KTU84P
USER=builder
HOST=qh-miui-ota-bd56
DEVICE=cancro
TAGS=release-keys
MODEL=MI 4LTE
BOOTLOADER=unknown
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
IS_DEBUGGABLE=true
ID=KTU84P
SERIAL=895f2f74
MANUFACTURER=Xiaomi
BRAND=Xiaomi
TYPE=user
java.lang.NullPointerException
at android.support.v4.view.ViewCompat$ICSViewCompatImpl.setAccessibilityDelegate(ViewCompat.java:923)
at android.support.v4.view.ViewCompat.setAccessibilityDelegate(ViewCompat.java:1343)
at android.support.v7.widget.RecyclerView$Recycler.addViewHolderToRecycledViewPool(RecyclerView.java:3900)
at android.support.v7.widget.RecyclerView$Recycler.recycleCachedViewAt(RecyclerView.java:3843)
at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:3880)
at android.support.v7.widget.RecyclerView$Recycler.recycleView(RecyclerView.java:3804)
at android.support.v7.widget.RecyclerView$LayoutManager.removeAndRecycleViewAt(RecyclerView.java:5529)
at android.support.v7.widget.LinearLayoutManager.recycleChildren(LinearLayoutManager.java:1143)
at android.support.v7.widget.LinearLayoutManager.recycleViewsFromEnd(LinearLayoutManager.java:1218)
at android.support.v7.widget.LinearLayoutManager.recycleByLayoutState(LinearLayoutManager.java:1242)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1268)
at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1102)
at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:959)
at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3062)
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:5047)
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:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)

6个回答

你确定当前的布局是使用LinearLayout?

owen_android
owen_android 楼主是否解决,遇到同样的问题
接近 5 年之前 回复
wangbin1992321
wangbin1992321 必须要用LinearLayout才可以?
大约 5 年之前 回复

我的不是滑动出现问题而是在notifyDataSetChanged()的时候崩溃,日志同楼主的一样,刚才解决了,notifyDataSetChanged()之前要重新调用一下setLayoutManager()。

试着换个v7包,我的也是这个问题,后来换了个v7包就解决了

mmc0531
mmc0531 回复xiaochuan0304: 先 gridview.setAdapter(...); 再 gridview.setLayoutManager(...); 问题就解决了
大约 4 年之前 回复
xiaochuan0304
xiaochuan0304 回复xiaochuan0304: 弄好了,我说一下我的问题吧,当滑动过多时就会出现问题。解决方案是修改build.gradle:dependencies { ... compile 'com.android.support:appcompat-v7:22.2.1' ... } 把v7版本修改高点。我的反正是这样解决了
大约 4 年之前 回复
xiaochuan0304
xiaochuan0304 小白问,怎么换包啊,我感觉我的也是包的问题,用V7-21有问题,V7-22.2.1就没有问题
大约 4 年之前 回复
xiaochuan0304
xiaochuan0304 小白问,怎么换包啊,我感觉我的也是包的问题,用V7-21有问题,V7-22.2.1就没有问题
大约 4 年之前 回复

求楼上的v4,v7包链接啊。我换了好几个了还不行

楼主是否解决,遇到同样的问题

不要使用notifyDataSetChanged,尽量多使用类似notifyItemRangeChanged的接口来刷新数据

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问