Android5.0出现的时间已经很久了,基本上所有的公司都已经适配到5.0的版本,所以RecyclerView作为非常好用的控件在开发过程中必不可少。
在使用RecyclerView(为了方便写,下面称RV)开发的过程中,对于新手来说,可能会出现一个错误:
那么这个错误是怎么造成的呢?
我们都知道,我们在使用RV控件的时候必须设置一个LayoutManager,然后指定是横向显示还是纵向显示,所以我们去设置一个
java.lang.NullPointerException: 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
LinearLayoutMannager
<span style="font-size:14px;">LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);</span>
然后我们运行,可是还有可能会报这个错误(生无可恋脸- .-),那么根源到底在哪里呢?
我们都知道和ListView一样,RecyclerView也需要设置一个适配器,所以,我们在设置适配器的时候一定要注意,
recyclerView.setLayoutManager(layoutManager);
设置LayoutManager一定要写在设置适配器之前,再次运行,错误解决。
recyclerView.setAdapter(mAdapter);
另外,在安卓API22版本中,这个错误并不会显示,而是提示
RecyclerView﹕ No adapter attached; skipping layout
但是这个RV控件不会显示出来。