【已解决】onCreateViewHolder中的代码错误,导致程序崩溃

问题:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
                                  at android.view.ViewGroup.addViewInner(ViewGroup.java:3562)
                                  at android.view.ViewGroup.addView(ViewGroup.java:3415)
                                  at android.view.ViewGroup.addView(ViewGroup.java:3360)
                                  at android.support.v7.widget.RecyclerView$5.addView(RecyclerView.java:649)

导致原因:


解决:

@Override
    public FragmentAdapter2.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_fragment1,parent,false);
        return new ViewHolder(view, this);
    }


### 回答1: OnCreateViewHolder 是 RecyclerView.Adapter 类的一个方法,用于在 RecyclerView 创建新的 ViewHolder 对象。在该方法,应该创建一个 ViewHolder 对象并将其返回。 ### 回答2: onCreateViewHolder是RecyclerView的一个方法,用于创建ViewHolder对象以及关联布局。 在使用RecyclerView时,我们需要创建一个Adapter来管理数据和展示。而AdapterViewHolder用于缓存布局View,并提供对View的访问。当RecyclerView需要新的ViewHolder时,会调用AdapteronCreateViewHolder方法。 onCreateViewHolder方法有两个参数:ViewGroup parent和int viewType。parent参数代表要展示的布局的父布局,而viewType参数代表布局的类型。 在onCreateViewHolder方法,我们需要做以下几个步骤: 1. 使用LayoutInflater.from(parent.getContext())获取LayoutInflater对象,用于将布局文件转换成View对象。 2. 使用LayoutInflater的inflate()方法,将布局文件转换为View对象。第一个参数是布局文件的资源ID,第二个参数是布局的父布局,第三个参数是布局是否需要附加到父布局上。 3. 创建一个ViewHolder对象,并将刚才创建的View对象传入。ViewHolder是一个自定义的类,需要继承RecyclerView.ViewHolder,并实现一些必要的方法,如构造函数和getView方法。 4. 返回创建的ViewHolder对象。 通过这样的步骤,我们就成功创建了一个ViewHolder对象,并与对应的布局文件关联起来。在RecyclerView的处理过程,当需要一个新的ViewHolder时,就会调用onCreateViewHolder方法,从而快速创建View对象并返回给RecyclerView使用。 onCreateViewHolder方法在使用RecyclerView时非常重要,它的正确实现可以提高RecyclerView的性能和用户体验。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值