ViewHolder views must not be attached when created. Ensure that you are not passing ‘true‘ to the at

2021-02-08 15:41:57.540 15876-15876/cn.xiayiye5.xiayiye5library E/AndroidRuntime: FATAL EXCEPTION: main
    Process: cn.xiayiye5.xiayiye5library, PID: 15876
    java.lang.IllegalStateException: ViewHolder views must not be attached when created. Ensure that you are not passing 'true' to the attachToRoot parameter of LayoutInflater.inflate(..., boolean attachToRoot)
        at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7080)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
        at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:675)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
        at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540)
        at android.view.View.measure(View.java:25466)
        at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:735)
        at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481)
        at android.view.View.measure(View.java:25466)
        at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:735)
        at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481)
        at android.view.View.measure(View.java:25466)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:146)
        at android.view.View.measure(View.java:25466)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
        at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:490)
        at android.view.View.measure(View.java:25466)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at android.view.View.measure(View.java:25466)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)

 

 

The above is my error log. The reason why I encountered this problem here is also very simple. It means that the outer layer of the layout I loaded does not have a parent layout. I checked the code and found that my writing was wrong:

 @NonNull
    @Override
    public XiaYiYeHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        xiaYiYeHolder = new XiaYiYeHolder(view);
        return xiaYiYeHolder;
    }


    protected XiaYiYeAdapter(Context context,@LayoutRes int layoutId, List<E> data) {
       view= View.inflate(context,layoutId,null);
        this.layoutId = layoutId;
        this.data = data;
    }

Take a look at the changed code:

  @NonNull
    @Override
    public XiaYiYeHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(layoutId, parent, false);
        xiaYiYeHolder = new XiaYiYeHolder(view);
        return xiaYiYeHolder;
    }


    protected XiaYiYeAdapter(@LayoutRes int layoutId, List<E> data) {
        this.layoutId = layoutId;
        this.data = data;
    }

 

Well, the completed project is running normally! !

Guess you like

Origin blog.csdn.net/xiayiye5/article/details/113758006