问题 Android RecyclerView LayoutManager异常


嗨,我遇到了新问题 Android Lollipop RecyclerView 

总是崩溃 除以下异常:

Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference

可以在此处找到完整堆栈跟踪

用于启动的代码 RecyclerView 与教程大致相同,但由于某种原因,这仍然是抱怨。任何帮助将不胜感激。

代码可以在以下位置访问: 要点在这里 和布局: 这个要点

没有任何一个 views, 要么 objects 是 null 


9238
2017-10-19 00:56


起源

将recyclerview添加到视图树时,它必须在布局之前具有布局管理器。给定错误日志,在测量调用到达时,它还没有布局管理器。完整堆栈跟踪应显示问题所在。 - yigit
堆栈跟踪可以在这里找到:http:/crashes.to/s/68cfe49fbd4。但据我所知,在堆栈跟踪中绝对没有引用我的代码。 - Bin power93
嗯这很有趣。我不明白为什么缺少布局管理器。如果您可以通过公共错误跟踪器或此处发送一个重现问题的示例应用程序,我将很高兴看到。顺便说一句,不应该与此崩溃有关,但LinearLayoutManager还不支持包装内容。您也无法设置换行内容以及setHasFixedSize(true)。 - yigit
另外一件事,当你给cardview充气时,也会传递父级,以便正确地继承样式和其他东西。 mCardView =(CardView)inflater.inflate(R.layout.card_lines_served,parent,false); - yigit


答案:


添加以下代码:

    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(layoutManager);

之前 添加适配器:

recyclerView.setAdapter(adapter);

11
2018-01-18 13:50





在Android Api级别22,它不会给出错误。 相反,如果找不到适配器,它会跳过布局。

通过显示警告:

RecyclerView:没有连接适配器;跳过布局

但是你的应用程序不会崩溃并运行,但是 recyclerView 没有显示。


2
2017-07-24 09:53



我讨厌这个改变,总是花30个小时来找到为什么我的新项目中的第一个RecyclerView没有显示@ _ @ - ericn