Android 显示空指针异常的Recyclerview

Android 显示空指针异常的Recyclerview,android,android-recyclerview,gridlayoutmanager,Android,Android Recyclerview,Gridlayoutmanager,我正在使用一个带有选项卡布局的视图寻呼机,在第三个选项卡中,我使用了一个包含Recyclerview的片段。 现在,当我滑动选项卡时,当我到达第三个选项卡时,它显示一个错误 Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.stopSmoothScroller()' on a null object reference 我不知道是什么问题,数据正在从服务器获取,

我正在使用一个带有选项卡布局的视图寻呼机,在第三个选项卡中,我使用了一个包含Recyclerview的片段。 现在,当我滑动选项卡时,当我到达第三个选项卡时,它显示一个错误

Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.stopSmoothScroller()' on a null object reference
我不知道是什么问题,数据正在从服务器获取,但应用程序正在崩溃。我在谷歌搜索了很多关于这个问题的信息,但是没有得到任何有效的答案

这是该片段中recylerview实现的代码

    recyclerView = (RecyclerView) layout.findViewById(R.id.staggeredGridDesign);
    adapter = new AdapterDesigns(getActivity());
    manager = new GridLayoutManager(getActivity(), 2, LinearLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(manager);
    recyclerView.swapAdapter(adapter, false);

    manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {

            if (m == 1 && listMen.size() % 2 != 0) {
                if (position == 0)
                    return 2;
            } else if (w == 1 && listWomen.size() % 2 != 0) {
                if (position == 0)
                    return 2;
            }
            return 1;
        }
    });

adapter.setDesignList(listMen);
日志:

 Process: stvisionary.fashionove.com, PID: 31886
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.stopSmoothScroller()' on a null object reference
        at android.support.v7.widget.RecyclerView.stopScrollersInternal(RecyclerView.java:1229)
        at android.support.v7.widget.RecyclerView.stopScroll(RecyclerView.java:1221)
        at android.support.v7.widget.RecyclerView.onDetachedFromWindow(RecyclerView.java:1426)
        at android.view.View.dispatchDetachedFromWindow(View.java:13459)
        at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2839)
        at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2836)
        at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2836)
        at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2836)
        at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2836)
        at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2836)
        at android.view.ViewGroup.removeViewInternal(ViewGroup.java:4165)
        at android.view.ViewGroup.removeViewInternal(ViewGroup.java:4138)
        at android.view.ViewGroup.removeView(ViewGroup.java:4070)
        at android.support.v4.view.ViewPager.removeView(ViewPager.java:1326)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1055)
        at android.support.v4.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1233)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:709)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:488)
        at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
        at android.support.v4.view.ViewPager$3.run(ViewPager.java:249)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
        at android.view.Choreographer.doCallbacks(Choreographer.java:580)
        at android.view.Choreographer.doFrame(Choreographer.java:549)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5312)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)

08-

我认为问题不在这个片段中(根本不在第三个片段中)

根据您的日志,在关闭一个片段之前存在问题。基本上是有人在打电话

'void android.support.v7.widget.RecyclerView$LayoutManager.stopSmoothScroller()'

在片段已经分离之后,此回收器视图不再存在。因此,最好看一看,确保不会发生类似的事情

无论如何,您可以通过像这样缓存片段来防止破坏ViewPager中的片段


viewPager.setOffscreenPageLimit(5)

我认为问题不在这个片段中(根本不在第三个片段中)

根据您的日志,在关闭一个片段之前存在问题。基本上是有人在打电话

'void android.support.v7.widget.RecyclerView$LayoutManager.stopSmoothScroller()'

在片段已经分离之后,此回收器视图不再存在。因此,最好看一看,确保不会发生类似的事情

无论如何,您可以通过像这样缓存片段来防止破坏ViewPager中的片段


viewPager.setOffscreenPageLimit(5)

@ParagKadam检查一下,我已经发布了Logcat@ParagKadam检查它,我已经发布了LogcatI解决了这个问题,这是Recyclerview-21中的一个bug,我刚刚将编译依赖项从21改为22,现在工作正常。编译'com.android.support:recyclerview-v7:22.2.1'@rahul,是的,你的解决方案对我有效。你节省了我的时间。谢谢。我已经解决了这个问题,这是Recyclerview-21中的一个bug,我刚刚将编译依赖项从21改为22,现在可以正常工作了。编译'com.android.support:recyclerview-v7:22.2.1'@rahul,是的,你的解决方案对我有效。你节省了我的时间。谢谢
at android.support.v4.view.ViewPager.removeView(ViewPager.java:1326)