最近使用RecyclerView时遇到如下错误:
E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException: Layout state should be one of 100 but it is 10 at android.support.v7.widget.RecyclerView$State.assertLayoutStep(RecyclerView.java:10053) at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3045) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2917) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3283) at android.view.View.layout(View.java:13916) at android.view.ViewGroup.layout(ViewGroup.java:4424) at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:596) at android.view.View.layout(View.java:13916) at android.view.ViewGroup.layout(ViewGroup.java:4424) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:13916) at android.view.ViewGroup.layout(ViewGroup.java:4424) at android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:437) at android.view.View.layout(View.java:13916) at android.view.ViewGroup.layout(ViewGroup.java:4424) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:13916) at android.view.ViewGroup.layout(ViewGroup.java:4424) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513) at android.widget.LinearLayout.onLayout(LinearLayout.java:1426) at android.view.View.layout(View.java:13916) at android.view.ViewGroup.layout(ViewGroup.java:4424) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:13916) at android.view.ViewGroup.layout(ViewGroup.java:4424) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2029) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1850) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1143) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4667) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) at android.view.Choreographer.doCallbacks(Choreographer.java:555) at android.view.Choreographer.doFrame(Choreographer.java:525) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92)
最后通过比较发现是创建视图时报的错:
view = View.inflate(mContext, R.layout.item_search_main_comm, null);
改为下面这句就好了:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_search_main_comm, parent, false);
坑爹啊,网上找了半个小时都没有找到!